|
| 1 | +# |
| 2 | +# daemon: http://www.zip.com.au/~raf2/lib/software/daemon |
| 3 | +# |
| 4 | +# Copyright (c) 1999 raf |
| 5 | +# |
| 6 | + |
| 7 | +# Uncomment these to override the defines in main.h |
| 8 | +# PATH_SEP = / |
| 9 | +# ROOT_DIR = / |
| 10 | +# PID_DIR = /var/run |
| 11 | +# ETC_DIR = /etc |
| 12 | +# APP = $(TARGETAPP) |
| 13 | +# DEFINES += -DPATH_SEP=\"$(PATH_SEP)\" -DROOT_DIR=\"$(ROOT_DIR)\" -DPID_DIR=\"$(PID_DIR)\" -DETC_DIR=\"$(ETC_DIR)\" -DAPP=\"$(APP)\" |
| 14 | + |
| 15 | +# Uncomment these if your system doesn't have snprintf() |
| 16 | +# SNPRINTF = snprintf |
| 17 | +# DEFINES += -DNEEDS_SNPRINTF=1 |
| 18 | + |
| 19 | +# Uncomment this under SVR4 if not predefined |
| 20 | +# DEFINES += -DSVR4 |
| 21 | + |
| 22 | +PROJECT = daemon |
| 23 | +VERSION = 0.1 |
| 24 | +TARGETAPP = daemon |
| 25 | +TARGETLIBNAME = prog |
| 26 | +INSTALLIBNAME = $(TARGETLIBNAME)-$(VERSION) |
| 27 | +TARGETLIB = lib$(TARGETLIBNAME).a |
| 28 | +INSTALLIB = lib$(INSTALLIBNAME).a |
| 29 | +TARGETDIST = $(PROJECT)-$(VERSION).tar.gz |
| 30 | + |
| 31 | +PREFIX = /usr/local |
| 32 | +APPINSDIR = $(PREFIX)/bin |
| 33 | +LIBINSDIR = $(PREFIX)/lib |
| 34 | +MANINSDIR = $(PREFIX)/man |
| 35 | +HDRINSDIR = $(PREFIX)/include/$(TARGETLIBNAME) |
| 36 | +APPMANSECT = 1 |
| 37 | +LIBMANSECT = 3 |
| 38 | + |
| 39 | +APPFILES = main |
| 40 | +APPCFILES = $(patsubst %,%.c,$(APPFILES)) |
| 41 | +APPOFILES = $(patsubst %,%.o,$(APPFILES)) |
| 42 | +APPHFILES = # $(patsubst %,%.h,$(APPFILES)) |
| 43 | +APPMFILES = $(TARGETAPP).$(APPMANSECT) |
| 44 | +APPMANDIR = $(MANINSDIR)/man$(APPMANSECT) |
| 45 | +APPCATDIR = $(MANINSDIR)/cat$(APPMANSECT) |
| 46 | + |
| 47 | +LIBFILES = daemon prog opt mem msg err sig lim slog fifo $(SNPRINTF) |
| 48 | +LIBCFILES = $(patsubst %,%.c,$(LIBFILES)) |
| 49 | +LIBOFILES = $(patsubst %,%.o,$(LIBFILES)) |
| 50 | +LIBHFILES = $(patsubst %,%.h,$(LIBFILES)) |
| 51 | +LIBMFILES = $(patsubst %,%.$(LIBMANSECT),$(LIBFILES)) lib$(TARGETLIBNAME).$(LIBMANSECT) |
| 52 | +LIBMANDIR = $(MANINSDIR)/man$(LIBMANSECT) |
| 53 | +LIBTESTS = $(patsubst %,%.test,$(LIBFILES)) |
| 54 | + |
| 55 | +DEFINES += -DBUILD_PROG |
| 56 | + |
| 57 | +CFLAGS = -g -O2 $(DEFINES) -Wall -pedantic |
| 58 | +LDFLAGS = -L. -l$(TARGETLIBNAME) |
| 59 | +ARFLAGS = cr |
| 60 | + |
| 61 | +$(TARGETAPP): $(APPOFILES) $(TARGETLIB) |
| 62 | + $(CC) $(CFLAGS) -o $(TARGETAPP) $(APPOFILES) $(LDFLAGS) |
| 63 | + |
| 64 | +$(TARGETLIB): $(LIBOFILES) |
| 65 | + $(AR) $(ARFLAGS) $(TARGETLIB) $(LIBOFILES) |
| 66 | + |
| 67 | +$(LIBTESTS): $(TARGETLIB) |
| 68 | +%.test: %.c |
| 69 | + $(CC) $(CFLAGS) -DTEST -o $@ $< $(LDFLAGS) |
| 70 | + |
| 71 | +test: $(LIBTESTS) |
| 72 | + @for i in $(LIBTESTS); do ./$$i; echo; done |
| 73 | + |
| 74 | +tags: |
| 75 | + @ctags $(APPCFILES) $(APPHFILES) $(LIBCFILES) $(LIBHFILES) |
| 76 | + |
| 77 | +depend dep: $(APPCFILES) $(APPHFILES) $(LIBCFILES) $(LIBHFILES) |
| 78 | + @makedepend $(DEFINES) $(APPCFILES) $(LIBCFILES) |
| 79 | + |
| 80 | +clean: |
| 81 | + @rm -f $(APPOFILES) $(LIBOFILES) tags core Makefile.bak .makefile.bak |
| 82 | + |
| 83 | +clobber: clean |
| 84 | + @rm -f $(TARGETAPP) $(TARGETLIB) $(LIBTESTS) |
| 85 | + |
| 86 | +dist-clobber: clobber |
| 87 | + @perl -pi -e 'last if /[D]O NOT DELETE/;' Makefile |
| 88 | + |
| 89 | +dist: dist-clobber |
| 90 | + @srcdir=`basename \`pwd\``; cd ..; tar czf $(TARGETDIST) $$srcdir |
| 91 | + |
| 92 | +install: install-app install-lib |
| 93 | +install-app: install-app-bin # install-app-man |
| 94 | +install-lib: install-lib-bin install-lib-h # install-lib-man |
| 95 | + |
| 96 | +install-app-bin: |
| 97 | + install -m 555 $(TARGETAPP) $(APPINSDIR) |
| 98 | +#install-app-man: |
| 99 | +# install -m 444 $(APPMFILES) $(APPMANDIR) |
| 100 | +install-lib-bin: |
| 101 | + install -m 555 $(TARGETLIB) $(LIBINSDIR)/$(INSTALLIB) |
| 102 | + rm -f $(LIBINSDIR)/$(TARGETLIB) |
| 103 | + ln -s $(INSTALLIB) $(LIBINSDIR)/$(TARGETLIB) |
| 104 | +install-lib-h: |
| 105 | + -[ ! -d $(HDRINSDIR) ] && mkdir -p $(HDRINSDIR) |
| 106 | + install -m 444 $(LIBHFILES) $(HDRINSDIR) |
| 107 | +#install-lib-man: |
| 108 | +# install -m 444 $(LIBMFILES) $(LIBMANDIR) |
| 109 | + |
| 110 | +uninstall: uninstall-app uninstall-lib |
| 111 | +uninstall-app: uninstall-app-bin # uninstall-app-man |
| 112 | +uninstall-lib: uninstall-lib-bin uninstall-lib-h # uninstall-lib-man |
| 113 | + |
| 114 | +uninstall-app-bin: |
| 115 | + -cd $(APPINSDIR) && rm -f $(TARGETAPP) |
| 116 | +#uninstall-app-man: |
| 117 | +# -cd $(APPMANDIR) && rm -f $(APPMFILES) && cd $(APPCATDIR) && rm -f $(APPMFILES) |
| 118 | +uninstall-lib-bin: |
| 119 | + -cd $(LIBINSDIR) && rm -f $(TARGETLIB) $(INSTALLIB) |
| 120 | +uninstall-lib-h: |
| 121 | + -cd $(HDRINSDIR) && rm -f $(LIBHFILES) && cd .. && rmdir $(HDRINSDIR) |
| 122 | +#uninstall-lib-man: |
| 123 | +# cd $(LIBMANDIR) && rm -f $(LIBMFILES) |
| 124 | + |
| 125 | +help: |
| 126 | + @echo "This makefile provides the following targets." |
| 127 | + @echo |
| 128 | + @echo "make $(TARGETAPP) -- makes $(TARGETAPP) and $(TARGETLIB) (default)" |
| 129 | + @echo "make $(TARGETLIB) -- just makes $(TARGETLIB)" |
| 130 | + @echo "make tags -- generates a tags file using ctags" |
| 131 | + @echo "make depend -- generates source dependencies using makedepend" |
| 132 | + @echo "make dep -- same as depend" |
| 133 | + @echo "make clean -- removes object files, tags, core and Makefile.bak" |
| 134 | + @echo "make clobber -- same as clean but also removes $(TARGETAPP) and $(TARGETLIB)" |
| 135 | + @echo "make dist-clobber -- same as clobber but also removes source dependencies" |
| 136 | + @echo "make dist -- creates the distribution: ../$(TARGETDIST)" |
| 137 | + @echo "make install -- installs everything under $(PREFIX)" |
| 138 | + @echo "make install-app -- installs $(TARGETAPP) and its man page" |
| 139 | + @echo "make install-app-bin -- installs $(TARGETAPP) in $(APPINSDIR)" |
| 140 | + @echo "make install-app-man -- installs the $(TARGETAPP) man page in $(APPMANDIR)" |
| 141 | + @echo "make install-lib -- installs $(TARGETLIB), its headers and man pages" |
| 142 | + @echo "make install-lib-bin -- installs $(TARGETLIB) in $(LIBINSDIR)" |
| 143 | + @echo "make install-lib-h -- installs $(TARGETLIB) headers in $(HDRINSDIR)" |
| 144 | + @echo "make install-lib-man -- installs $(TARGETLIB) man pages in $(LIBMANDIR)" |
| 145 | + @echo "make uninstall -- uninstalls everything" |
| 146 | + @echo "make uninstall-app -- uninstalls $(TARGETAPP) and its man page" |
| 147 | + @echo "make uninstall-app-bin -- uninstalls $(TARGETAPP) from $(APPINSDIR)" |
| 148 | + @echo "make uninstall-app-man -- uninstalls the $(TARGETAPP) man page from $(APPMANDIR)" |
| 149 | + @echo "make uninstall-lib -- uninstalls $(TARGETLIB), its headers and man pages" |
| 150 | + @echo "make uninstall-lib-bin -- uninstalls $(TARGETLIB) from $(LIBINSDIR)" |
| 151 | + @echo "make uninstall-lib-h -- uninstalls $(TARGETLIB) headers from $(HDRINSDIR)" |
| 152 | + @echo "make uninstall-lib-man -- uninstalls $(TARGETLIB) man pages from $(LIBMANDIR)" |
| 153 | + @echo "make help -- shows this list of targets" |
| 154 | + @echo |
| 155 | + |
0 commit comments