Former-commit-id:9f19e3f712
[formerly 64fa9254b946eae7e61bbc3f513b7c3696c4f54f] Former-commit-id:06a8b51d6d
150 lines
3.7 KiB
Makefile
150 lines
3.7 KiB
Makefile
# This file contains general-purpose make(1) rules.
|
|
|
|
LIB_OBJS = $(LIB_CSRCS:.c=.o)
|
|
LINT_OBJS = $(LIB_CSRCS:.c=.ln)
|
|
LINTFLAGS = -errchk=%all -errfmt=macro -errhdr -errtags -erroff=E_BAD_PTR_CAST_ALIGN,E_FUNC_VAR_UNUSED,E_CAST_UINT_TO_SIGNED_INT,E_CAST_INT_TO_SMALL_INT,E_PTRDIFF_OVERFLOW,E_SIGN_EXTENSION_PSBL,E_IDENTIFIER_REDEFINED,E_IDENTIFIER_REDECLARED,E_PARAM_REDECLARED
|
|
PROGRAMS = $(C_PROGRAMS) $(SHELL_PROGRAMS)
|
|
CPPFLAGS = $(CONFIGURE_CPPFLAGS) $(DEFINES) -I.. $(INCLUDES)
|
|
LIBS = $(LIBRARY) $(LDLIBS) $(CONFIGURE_LIBS)
|
|
COMPILE.c = $(CC) -c $(CFLAGS) $(CPPFLAGS)
|
|
|
|
.SUFFIXES: .o .i .ln .c
|
|
|
|
.c.i:
|
|
$(CC) -E $(CFLAGS) $(CPPFLAGS) $< > $@
|
|
.c.o:
|
|
$(COMPILE.c) $<
|
|
|
|
.c.ln:
|
|
$(LINT) -c $(LINTFLAGS) $(CPPFLAGS) -UNDEBUG $<
|
|
|
|
install: installed_headers \
|
|
installed_programs \
|
|
installed_etc_files \
|
|
installed_manuals
|
|
|
|
install_setuids: installed_setuid_programs
|
|
|
|
#lint: lint_library linted_programs
|
|
|
|
lint_library: llib-l$(LINT_LIBRARY).ln
|
|
|
|
clean:
|
|
rm -f *.a *.o *.ln *.i $(C_PROGRAMS) $(GARBAGE)
|
|
|
|
distclean:
|
|
rm -f *.a *.o *.ln *.i $(C_PROGRAMS) $(GARBAGE) *.log \
|
|
$(DISTCLEAN_GARBAGE)
|
|
|
|
linted_programs:
|
|
@for program in $(C_PROGRAMS) ""; do \
|
|
test ! "$$program" || \
|
|
$(MAKE) PROGRAM=$$program $$program.ln; \
|
|
done;
|
|
|
|
archived_files: $(LIB_OBJS)
|
|
$(AR) $(ARFLAGS) $(LIBRARY) $(LIB_OBJS)
|
|
$(RANLIB) $(LIBRARY)
|
|
|
|
programs:
|
|
@for program in $(C_PROGRAMS) ""; do \
|
|
test ! "$$program" || \
|
|
$(MAKE) $$program; \
|
|
done;
|
|
|
|
deps: FORCE
|
|
$(CC) -xM1 $(CPPFLAGS) *.c >depends
|
|
sort -u -o depends depends
|
|
|
|
# The following rule is intended to work even if the target file is a symbolic
|
|
# link.
|
|
tags: FORCE
|
|
ctags -f $@ *.c *.h \
|
|
$(TAG_SRCS) \
|
|
../rpc/*.c ../rpc/*.h
|
|
|
|
$(INCDIR) \
|
|
$(BINDIR) \
|
|
$(ETCDIR) \
|
|
$(LIBDIR) \
|
|
$(MANDIR) \
|
|
$(MANDIR)/man1 \
|
|
$(MANDIR)/man3:
|
|
mkdir $@
|
|
|
|
MANIFEST.echo:
|
|
@$(MAKE) -s $(LOCAL_MACROS) ensure_manifest > /dev/null
|
|
@echo $(PACKING_LIST) | fmt -1
|
|
|
|
llib-l$(LINT_LIBRARY).ln: $(LINT_OBJS)
|
|
$(LINT) -o $(LINT_LIBRARY) -x $(LINTFLAGS) $(CPPFLAGS) $(LINT_OBJS)
|
|
|
|
ensure_manifest: $(PACKING_LIST)
|
|
|
|
installed_headers:
|
|
@for header in $(HEADERS) ""; do \
|
|
test ! "$$header" || \
|
|
$(MAKE) HEADER=$$header $(INCDIR)/$$header; \
|
|
done
|
|
|
|
installed_programs:
|
|
@for program in $(PROGRAMS) ""; do \
|
|
test ! "$$program" || \
|
|
$(MAKE) PROGRAM=$$program $(BINDIR)/$$program; \
|
|
done
|
|
|
|
installed_setuid_programs:
|
|
@for program in $(SETUID_PROGRAMS) ""; do \
|
|
test ! "$$program" || \
|
|
$(MAKE) SETUID_PROGRAM=$$program setuid_program; \
|
|
done
|
|
|
|
setuid_program:
|
|
$(MAKE) PROGRAM=$(SETUID_PROGRAM) \
|
|
$(BINDIR)/$(SETUID_PROGRAM)
|
|
chown root $(BINDIR)/$(SETUID_PROGRAM) && \
|
|
chmod 4755 $(BINDIR)/$(SETUID_PROGRAM)
|
|
|
|
installed_etc_files:
|
|
@for file in $(ETC_FILES) ""; do \
|
|
test ! "$$file" || \
|
|
$(MAKE) ETC_FILE=$$file $(ETCDIR)/$$file; \
|
|
done;
|
|
|
|
installed_manuals:
|
|
@for manual in $(MANUALS) ""; do \
|
|
if test "$$manual"; then \
|
|
case "$$manual" in \
|
|
*.1) sub=man1;; \
|
|
*.3) sub=man3;; \
|
|
esac; \
|
|
$(MAKE) MANUAL=$$manual $(MANDIR)/$$sub/$$manual; \
|
|
else \
|
|
true; \
|
|
fi; \
|
|
done;
|
|
|
|
$(BINDIR)/$(PROGRAM): $(BINDIR) $(PROGRAM)
|
|
-@cmp -s $(PROGRAM) $@ || \
|
|
($(INSTALL) $(PROGRAM) $@ && chmod +x $@ && echo 'updated $@')
|
|
|
|
$(INCDIR)/$(HEADER): $(INCDIR) $(HEADER)
|
|
-@cmp -s $(HEADER) $@ || \
|
|
($(INSTALL) $(HEADER) $@ && echo 'updated $@')
|
|
|
|
$(ETCDIR)/$(ETC_FILE): $(ETCDIR) $(ETC_FILE)
|
|
@if [ -f "$@" ]; then \
|
|
echo '$@ already installed' ; \
|
|
else \
|
|
($(INSTALL) $(ETC_FILE) $@ && echo '$@ installed') ; \
|
|
fi
|
|
|
|
$(MANDIR)/man1/$(MANUAL): $(MANDIR) $(MANDIR)/man1 $(MANUAL)
|
|
-@cmp -s $(MANUAL) $@ || \
|
|
($(INSTALL) $(MANUAL) $@ && echo 'updated $@')
|
|
|
|
$(MANDIR)/man3/$(MANUAL): $(MANDIR) $(MANDIR)/man3 $(MANUAL)
|
|
-@cmp -s $(MANUAL) $@ || \
|
|
($(INSTALL) $(MANUAL) $@ && echo 'updated $@')
|
|
|
|
FORCE:
|