1# 2# Makefile for lib/ss 3# 4 5srcdir = @srcdir@ 6top_srcdir = @top_srcdir@ 7VPATH = @srcdir@ 8top_builddir = ../.. 9my_dir = lib/ss 10INSTALL = @INSTALL@ 11MKDIR_P = @MKDIR_P@ 12DLOPEN_LIB = @DLOPEN_LIB@ 13 14@MCONFIG@ 15 16LIBRARY= libss 17LIBDIR= ss 18 19ELF_VERSION = 2.0 20ELF_SO_VERSION = 2 21ELF_IMAGE = libss 22ELF_MYDIR = ss 23ELF_INSTALL_DIR = $(root_libdir) 24ELF_OTHER_LIBS = -lcom_err $(DLOPEN_LIB) 25 26BSDLIB_VERSION = 1.0 27BSDLIB_IMAGE = libss 28BSDLIB_MYDIR = ss 29BSDLIB_INSTALL_DIR = $(root_libdir) 30 31TAGS=etags 32MK_CMDS= _SS_DIR_OVERRIDE=$(srcdir) ./mk_cmds 33COMPILE_ET= _ET_DIR_OVERRIDE=$(srcdir)/../et ../et/compile_et 34 35.c.o: 36 $(E) " CC $<" 37 $(Q) $(CC) $(ALL_CFLAGS_STLIB) -c $< 38 $(Q) $(CHECK_CMD) $(ALL_CFLAGS) $< 39 $(Q) $(CPPCHECK_CMD) $(CPPFLAGS) $< 40@PROFILE_CMT@ $(Q) $(CC) $(ALL_CFLAGS_STLIB) -g -pg -o profiled/$*.o -c $< 41@ELF_CMT@ $(Q) $(CC) $(ALL_CFLAGS_SHLIB) -DSHARED_ELF_LIB -fPIC -shared -o elfshared/$*.o -c $< 42@BSDLIB_CMT@ $(Q) $(CC) $(ALL_CFLAGS_SHLIB) $(BSDLIB_PIC_FLAG) -o pic/$*.o -c $< 43 44# for the library 45 46# with ss_err.o first, ss_err.h should get rebuilt first too. should not 47# be relying on this, though. 48OBJS= ss_err.o \ 49 std_rqs.o \ 50 invocation.o help.o \ 51 execute_cmd.o listen.o parse.o error.o prompt.o \ 52 request_tbl.o list_rqs.o pager.o requests.o \ 53 data.o get_readline.o 54 55SRCS= $(srcdir)/invocation.c $(srcdir)/help.c \ 56 $(srcdir)/execute_cmd.c $(srcdir)/listen.c $(srcdir)/parse.c \ 57 $(srcdir)/error.c $(srcdir)/prompt.c $(srcdir)/request_tbl.c \ 58 $(srcdir)/list_rqs.c $(srcdir)/pager.c $(srcdir)/requests.c \ 59 $(srcdir)/data.c $(srcdir)/get_readline.c 60 61all:: mk_cmds 62 63@MAKEFILE_LIBRARY@ 64@MAKEFILE_ELF@ 65@MAKEFILE_BSDLIB@ 66@MAKEFILE_PROFILE@ 67 68CODE= $(SRCS) $(MKCMDSFILES) 69 70MKCMDSOBJS= mk_cmds.o utils.o options.o ct.tab.o cmd_tbl.lex.o 71 72MKCMDSFILES= mk_cmds.c utils.c options.c ct.y cmd_tbl.lex.l 73 74MKCMDSCSRCS= mk_cmds.c utils.c options.c ct.tab.c cmd_tbl.lex.c 75 76 77HFILES= ss.h ss_internal.h 78SHARE_FILES= ct_c.awk ct_c.sed 79 80INSTALL_HFILES= ss.h 81 82# for 'tags' and dependencies 83 84CFILES= $(SRCS) $(MKCMDSCSRCS) test_ss.c 85 86# for building archives 87 88FILES= $(SRCS) $(MKCMDSFILES) $(HFILES) \ 89 ss_err.et std_rqs.ct Makefile \ 90 test_ss.c ss 91 92all:: libss.a ss.pc # libss_p.a lint 93 94std_rqs.c: std_rqs.ct mk_cmds 95 $(E) " MK_CMDS $@" 96 $(Q) DIR=$(srcdir) $(MK_CMDS) $(srcdir)/std_rqs.ct 97 98std_rqs.o: ss_err.h 99 100test_cmd.c: test_cmd.ct mk_cmds 101 $(E) " MK_CMDS $@" 102 $(Q) DIR=$(srcdir) $(MK_CMDS) $(srcdir)/test_cmd.ct 103 104ss_err.c ss_err.h: ss_err.et 105 $(E) " COMPILE_ET ss_err.et" 106 $(Q) $(COMPILE_ET) $(srcdir)/ss_err.et 107 108ct.tab.c ct.tab.h: ct.y 109 $(RM) -f ct.tab.* y.* 110 $(YACC) -d $(srcdir)/ct.y 111 $(MV) -f y.tab.c ct.tab.c 112 $(MV) -f y.tab.h ct.tab.h 113 114#libss.o: $(OBJS) 115# $(LD) -r -s -o $@ $(OBJS) 116# $(CHMOD) -x $@ 117 118mk_cmds: $(DEP_SUBSTITUTE) $(srcdir)/mk_cmds.sh.in 119 $(E) " SUBST $@" 120 $(Q) $(SUBSTITUTE) $(srcdir)/mk_cmds.sh.in mk_cmds 121 $(Q) $(CHMOD) +x mk_cmds 122 123ss.pc: $(srcdir)/ss.pc.in $(top_builddir)/config.status 124 $(E) " CONFIG.STATUS $@" 125 $(Q) cd $(top_builddir); CONFIG_FILES=lib/ss/ss.pc ./config.status 126 127installdirs:: 128 $(E) " MKDIR_P $(libdir) $(includedir)/ss $(datadir)/ss $(bindir) $(pkgconfigdir) $(man1dir)" 129 $(Q) $(MKDIR_P) $(DESTDIR)$(libdir) \ 130 $(DESTDIR)$(includedir)/ss $(DESTDIR)$(datadir)/ss \ 131 $(DESTDIR)$(bindir) $(DESTDIR)$(pkgconfigdir) \ 132 $(DESTDIR)$(man1dir) 133 134install:: libss.a $(INSTALL_HFILES) installdirs ss_err.h mk_cmds ss.pc 135 $(E) " INSTALL_DATA $(DESTDIR)$(libdir)/libss.a" 136 $(Q) $(INSTALL_DATA) libss.a $(DESTDIR)$(libdir)/libss.a 137 -$(Q) $(RANLIB) $(DESTDIR)$(libdir)/libss.a 138 $(Q) $(CHMOD) $(LIBMODE) $(DESTDIR)$(libdir)/libss.a 139 $(Q) $(RM) -f $(DESTDIR)$(includedir)/ss/* 140 $(Q) for i in $(INSTALL_HFILES); do \ 141 echo " INSTALL_DATA $(DESTDIR)$(includedir)/ss/$$i"; \ 142 $(INSTALL_DATA) $(srcdir)/$$i $(DESTDIR)$(includedir)/ss/$$i; \ 143 done 144 $(E) " INSTALL_DATA $(includedir)/ss/ss_err.h" 145 $(Q) $(INSTALL_DATA) ss_err.h $(DESTDIR)$(includedir)/ss/ss_err.h 146 $(Q) for i in $(SHARE_FILES); do \ 147 echo " INSTALL_DATA $(DESTDIR)$(datadir)/ss/$$i"; \ 148 $(INSTALL_DATA) $(srcdir)/$$i $(DESTDIR)$(datadir)/ss/$$i; \ 149 done 150 $(E) " INSTALL $(bindir)/mk_cmds" 151 $(Q) $(INSTALL) mk_cmds $(DESTDIR)$(bindir)/mk_cmds 152 $(E) " INSTALL_DATA $(man1dir)/mk_cmds.1" 153 $(Q) $(INSTALL_DATA) $(srcdir)/mk_cmds.1 $(DESTDIR)$(man1dir)/mk_cmds.1 154 $(E) " INSTALL_DATA $(pkgconfigdir)/ss.pc" 155 $(Q) $(INSTALL_DATA) ss.pc $(DESTDIR)$(pkgconfigdir)/ss.pc 156 157uninstall:: 158 $(RM) -f $(DESTDIR)$(libdir)/libss.a $(DESTDIR)$(bindir)/mk_cmds \ 159 $(DESTDIR)$(pkgconfigdir)/ss.pc \ 160 $(DESTDIR)$(man1dir)/mk_cmds.1 161 $(RM) -rf $(DESTDIR)$(includedir)/ss $(DESTDIR)$(datadir)/ss 162 163test_ss: test_ss.o test_cmd.o $(DEPLIBSS) $(DEPLIBCOM_ERR) 164 $(E) " LD $@" 165 $(Q) $(CC) -o $@ test_ss.o test_cmd.o $(ALL_CFLAGS) $(ALL_LDFLAGS) \ 166 $(LIBSS) $(LIBCOM_ERR) $(SYSLIBS) 167 168fullcheck check:: all test_ss 169 $(E) " RUN TEST test_ss" 170 -@($(TESTENV) ./test_ss -f $(srcdir)/test_script > test_out 2>&1; exit 0) 171 $(Q) if diff test_out $(srcdir)/test_script_expected > test.diff; then \ 172 true ; else echo "Regression test for ss library failed!"; exit 1 ; fi 173 174clean:: 175 $(RM) -f ../libss.a libss.a mk_cmds ss_err.h ss_err.c std_rqs.c \ 176 tst_cmds.c test_ss test_out test.diff *.o *~ \#* *.bak core \ 177 test_cmd.c ss.pc 178 179mostlyclean:: clean 180distclean:: clean 181 $(RM) -f .depend Makefile ss.pc \ 182 $(srcdir)/TAGS $(srcdir)/Makefile.in.old 183 184# 185# Hack to parallel makes recognize dependencies correctly. 186# 187$(top_builddir)/lib/ss/ss_err.h: ss_err.h 188 189$(OBJS): subdirs 190 191# +++ Dependency line eater +++ 192# 193# Makefile dependencies follow. This must be the last section in 194# the Makefile.in file 195# 196invocation.o: $(srcdir)/invocation.c $(top_builddir)/lib/config.h \ 197 $(top_builddir)/lib/dirpaths.h $(srcdir)/ss_internal.h $(srcdir)/ss.h \ 198 $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h 199help.o: $(srcdir)/help.c $(top_builddir)/lib/config.h \ 200 $(top_builddir)/lib/dirpaths.h $(srcdir)/ss_internal.h $(srcdir)/ss.h \ 201 $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h 202execute_cmd.o: $(srcdir)/execute_cmd.c $(top_builddir)/lib/config.h \ 203 $(top_builddir)/lib/dirpaths.h $(srcdir)/ss_internal.h $(srcdir)/ss.h \ 204 $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h 205listen.o: $(srcdir)/listen.c $(top_builddir)/lib/config.h \ 206 $(top_builddir)/lib/dirpaths.h $(srcdir)/ss_internal.h $(srcdir)/ss.h \ 207 $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h 208parse.o: $(srcdir)/parse.c $(top_builddir)/lib/config.h \ 209 $(top_builddir)/lib/dirpaths.h $(srcdir)/ss_internal.h $(srcdir)/ss.h \ 210 $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h 211error.o: $(srcdir)/error.c $(top_builddir)/lib/config.h \ 212 $(top_builddir)/lib/dirpaths.h $(top_srcdir)/lib/et/com_err.h \ 213 $(srcdir)/ss_internal.h $(srcdir)/ss.h $(top_builddir)/lib/ss/ss_err.h 214prompt.o: $(srcdir)/prompt.c $(top_builddir)/lib/config.h \ 215 $(top_builddir)/lib/dirpaths.h $(srcdir)/ss_internal.h $(srcdir)/ss.h \ 216 $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h 217request_tbl.o: $(srcdir)/request_tbl.c $(top_builddir)/lib/config.h \ 218 $(top_builddir)/lib/dirpaths.h $(srcdir)/ss_internal.h $(srcdir)/ss.h \ 219 $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h 220list_rqs.o: $(srcdir)/list_rqs.c $(top_builddir)/lib/config.h \ 221 $(top_builddir)/lib/dirpaths.h $(srcdir)/ss_internal.h $(srcdir)/ss.h \ 222 $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h 223pager.o: $(srcdir)/pager.c $(top_builddir)/lib/config.h \ 224 $(top_builddir)/lib/dirpaths.h $(srcdir)/ss_internal.h $(srcdir)/ss.h \ 225 $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h 226requests.o: $(srcdir)/requests.c $(top_builddir)/lib/config.h \ 227 $(top_builddir)/lib/dirpaths.h $(srcdir)/ss_internal.h $(srcdir)/ss.h \ 228 $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h 229data.o: $(srcdir)/data.c $(top_builddir)/lib/config.h \ 230 $(top_builddir)/lib/dirpaths.h $(srcdir)/ss_internal.h $(srcdir)/ss.h \ 231 $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h 232get_readline.o: $(srcdir)/get_readline.c $(top_builddir)/lib/config.h \ 233 $(top_builddir)/lib/dirpaths.h $(srcdir)/ss_internal.h $(srcdir)/ss.h \ 234 $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h 235