mirror of
https://github.com/rfivet/uemacs.git
synced 2024-11-17 18:16:22 -05:00
108 lines
2.3 KiB
Makefile
108 lines
2.3 KiB
Makefile
# Makefile -- uEMACS
|
|
# Copyright (c) 2014-2021 Renaud Fivet
|
|
|
|
# Make the build silent by default
|
|
V =
|
|
|
|
ifeq ($(strip $(V)),)
|
|
E = @echo
|
|
Q = @
|
|
else
|
|
E = @\#
|
|
Q =
|
|
endif
|
|
export E Q
|
|
|
|
uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
|
|
# for windows based target, insure we strip the variant part
|
|
# CYGWIN_NT-6.1, CYGWIN_NT-6.1-WOW, CYGWIN_NT-6.1-WOW64, MSYS_NT-10.0-19042
|
|
uname_S := $(shell sh -c 'echo $(uname_S) | sed s/_.*$$//')
|
|
|
|
PROGRAM=ue
|
|
|
|
CC=gcc
|
|
WARNINGS=-pedantic -Wall -Wextra -Wstrict-prototypes -Wno-unused-parameter
|
|
CFLAGS=-O2 $(WARNINGS)
|
|
LDFLAGS=-s
|
|
LIBS=-lcurses
|
|
DEFINES=-DAUTOCONF -DPROGRAM=$(PROGRAM)
|
|
ifeq ($(uname_S),Linux)
|
|
DEFINES += -DPOSIX -DUSG
|
|
else ifeq ($(uname_S),CYGWIN)
|
|
DEFINES += -DCYGWIN -DSYSV
|
|
else ifeq ($(uname_S),MSYS)
|
|
DEFINES += -DCYGWIN -DSYSV
|
|
else ifeq ($(uname_S),NetBSD)
|
|
DEFINES += -DPOSIX -DBSD=1
|
|
else
|
|
$(error $(uname_S) needs configuration)
|
|
endif
|
|
|
|
#ifeq ($(uname_S),FreeBSD)
|
|
# DEFINES=-DAUTOCONF -DPOSIX -DSYSV -D_FREEBSD_C_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -D_XOPEN_SOURCE=600
|
|
#endif
|
|
#ifeq ($(uname_S),Darwin)
|
|
# DEFINES=-DAUTOCONF -DPOSIX -DSYSV -D_DARWIN_C_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -D_XOPEN_SOURCE=600
|
|
#endif
|
|
|
|
#LIBS=-ltermcap # BSD
|
|
#LIBS=-lcurses # SYSV
|
|
#LIBS=-ltermlib
|
|
#LIBS=-L/usr/lib/termcap -ltermcap
|
|
LFLAGS=-hbx
|
|
BINDIR=/usr/bin
|
|
LIBDIR=/usr/lib
|
|
|
|
SRCS = $(sort $(wildcard *.c))
|
|
OBJS = $(SRCS:.c=.o)
|
|
|
|
$(PROGRAM): $(OBJS)
|
|
$(E) " LINK " $@
|
|
$(Q) $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
|
|
|
|
SPARSE=sparse
|
|
SPARSE_FLAGS=-D__LITTLE_ENDIAN__ -D__x86_64__ -D__linux__ -D__unix__
|
|
|
|
sparse:
|
|
$(SPARSE) $(SPARSE_FLAGS) $(DEFINES) $(SRCS)
|
|
|
|
clean:
|
|
$(E) " CLEAN"
|
|
$(Q) rm -f $(PROGRAM) core lintout makeout tags *.o
|
|
|
|
install: $(PROGRAM)
|
|
strip $(PROGRAM)
|
|
cp $(PROGRAM) ${BINDIR}
|
|
cp emacs.hlp ${LIBDIR}
|
|
cp emacs.rc ${LIBDIR}/.emacsrc
|
|
chmod 755 ${BINDIR}/$(PROGRAM)
|
|
chmod 644 ${LIBDIR}/emacs.hlp ${LIBDIR}/.emacsrc
|
|
|
|
lint: ${SRC}
|
|
@rm -f lintout
|
|
lint ${LFLAGS} ${SRC} >lintout
|
|
cat lintout
|
|
|
|
splint:
|
|
splint -weak $(DEFINES) $(SRCS) -booltype boolean -booltrue TRUE -boolfalse FALSE +posixlib +matchanyintegral
|
|
|
|
errs:
|
|
@rm -f makeout
|
|
make $(PROGRAM) >makeout 2>&1
|
|
|
|
tags: ${SRC}
|
|
@rm -f tags
|
|
ctags ${SRC}
|
|
|
|
.c.o:
|
|
$(E) " CC " $@
|
|
$(Q) ${CC} ${CFLAGS} ${DEFINES} -c $*.c
|
|
|
|
depend.mak: $(wildcard *.h)
|
|
$(E) " DEPEND"
|
|
$(Q) $(CC) $(DEFINES) -MM $(SRCS) > depend.mak
|
|
|
|
include depend.mak
|
|
|
|
# end of Makefile
|