awips2/ldm/src/rules.make
root 3360eb6c5f Initial revision of AWIPS2 11.9.0-7p5
Former-commit-id: 9f19e3f712 [formerly 64fa9254b946eae7e61bbc3f513b7c3696c4f54f]
Former-commit-id: 06a8b51d6d
2012-01-06 08:55:05 -06:00

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: