| # |
| # Makefile for lib/ss |
| # |
| |
| srcdir = @srcdir@ |
| top_srcdir = @top_srcdir@ |
| VPATH = @srcdir@ |
| top_builddir = ../.. |
| my_dir = lib/ss |
| INSTALL = @INSTALL@ |
| DLOPEN_LIB = @DLOPEN_LIB@ |
| |
| @MCONFIG@ |
| |
| LIBRARY= libss |
| LIBDIR= ss |
| |
| ELF_VERSION = 2.0 |
| ELF_SO_VERSION = 2 |
| ELF_IMAGE = libss |
| ELF_MYDIR = ss |
| ELF_INSTALL_DIR = $(root_libdir) |
| ELF_OTHER_LIBS = -L../.. -lcom_err $(DLOPEN_LIB) |
| |
| BSDLIB_VERSION = 1.0 |
| BSDLIB_IMAGE = libss |
| BSDLIB_MYDIR = ss |
| BSDLIB_INSTALL_DIR = $(root_libdir) |
| |
| TAGS=etags |
| COMPILE_ET=../et/compile_et --build-tree |
| MK_CMDS=_SS_DIR_OVERRIDE=. ./mk_cmds |
| |
| # -I.. is so that ss/ss_err.h works |
| # -I$(srcdir)/.. is so that ss/ss.h works |
| # -I$(srcdir)/../et is so com_err.h works |
| XTRA_CFLAGS= -I$(srcdir)/../et |
| |
| .c.o: |
| $(E) " CC $<" |
| $(Q) $(CC) $(ALL_CFLAGS) -c $< |
| @PROFILE_CMT@ $(Q) $(CC) $(ALL_CFLAGS) -g -pg -o profiled/$*.o -c $< |
| @CHECKER_CMT@ $(Q) $(CC) $(ALL_CFLAGS) -checker -g -o checker/$*.o -c $< |
| @ELF_CMT@ $(Q) $(CC) $(ALL_CFLAGS) -DSHARED_ELF_LIB -fPIC -o elfshared/$*.o -c $< |
| @BSDLIB_CMT@ $(Q) $(CC) $(ALL_CFLAGS) $(BSDLIB_PIC_FLAG) -o pic/$*.o -c $< |
| |
| # for the library |
| |
| # with ss_err.o first, ss_err.h should get rebuilt first too. should not |
| # be relying on this, though. |
| OBJS= ss_err.o \ |
| std_rqs.o \ |
| invocation.o help.o \ |
| execute_cmd.o listen.o parse.o error.o prompt.o \ |
| request_tbl.o list_rqs.o pager.o requests.o \ |
| data.o get_readline.o |
| |
| SRCS= $(srcdir)/invocation.c $(srcdir)/help.c \ |
| $(srcdir)/execute_cmd.c $(srcdir)/listen.c $(srcdir)/parse.c \ |
| $(srcdir)/error.c $(srcdir)/prompt.c $(srcdir)/request_tbl.c \ |
| $(srcdir)/list_rqs.c $(srcdir)/pager.c $(srcdir)/requests.c \ |
| $(srcdir)/data.c $(srcdir)/get_readline.c |
| |
| all:: mk_cmds |
| |
| @MAKEFILE_LIBRARY@ |
| @MAKEFILE_ELF@ |
| @MAKEFILE_BSDLIB@ |
| @MAKEFILE_PROFILE@ |
| @MAKEFILE_CHECKER@ |
| |
| CODE= $(SRCS) $(MKCMDSFILES) |
| |
| MKCMDSOBJS= mk_cmds.o utils.o options.o ct.tab.o cmd_tbl.lex.o |
| |
| MKCMDSFILES= mk_cmds.c utils.c options.c ct.y cmd_tbl.lex.l |
| |
| MKCMDSCSRCS= mk_cmds.c utils.c options.c ct.tab.c cmd_tbl.lex.c |
| |
| |
| HFILES= ss.h ss_internal.h |
| SHARE_FILES= ct_c.awk ct_c.sed |
| |
| INSTALL_HFILES= ss.h |
| |
| # for 'tags' and dependencies |
| |
| CFILES= $(SRCS) $(MKCMDSCSRCS) test_ss.c |
| |
| # for building archives |
| |
| FILES= $(SRCS) $(MKCMDSFILES) $(HFILES) \ |
| ss_err.et std_rqs.ct Makefile \ |
| test_ss.c ss |
| |
| all:: libss.a ss.pc # libss_p.a lint |
| |
| std_rqs.c: std_rqs.ct mk_cmds |
| $(E) " MK_CMDS $@" |
| $(Q) DIR=$(srcdir) $(MK_CMDS) $(srcdir)/std_rqs.ct |
| |
| std_rqs.o: ss_err.h |
| |
| test_cmd.c: test_cmd.ct mk_cmds |
| $(E) " MK_CMDS $@" |
| $(Q) DIR=$(srcdir) $(MK_CMDS) $(srcdir)/test_cmd.ct |
| |
| ss_err.c ss_err.h: ss_err.et |
| $(E) " COMPILE_ET ss_err.et" |
| $(Q) $(COMPILE_ET) $(srcdir)/ss_err.et |
| |
| ct.tab.c ct.tab.h: ct.y |
| $(RM) -f ct.tab.* y.* |
| $(YACC) -d $(srcdir)/ct.y |
| $(MV) -f y.tab.c ct.tab.c |
| $(MV) -f y.tab.h ct.tab.h |
| |
| #libss.o: $(OBJS) |
| # $(LD) -r -s -o $@ $(OBJS) |
| # $(CHMOD) -x $@ |
| |
| mk_cmds: $(DEP_SUBSTITUTE) $(srcdir)/mk_cmds.sh.in |
| $(E) " SUBST $@" |
| $(Q) $(SUBSTITUTE) $(srcdir)/mk_cmds.sh.in mk_cmds |
| $(Q) $(CHMOD) +x mk_cmds |
| |
| ss.pc: $(srcdir)/ss.pc.in $(top_builddir)/config.status |
| $(E) " CONFIG.STATUS $@" |
| $(Q) cd $(top_builddir); CONFIG_FILES=lib/ss/ss.pc ./config.status |
| |
| installdirs:: |
| $(E) " MKINSTALLDIRS $(libdir) $(includedir)/ss $(datadir)/ss $(bindir)" |
| $(Q) $(MKINSTALLDIRS) $(DESTDIR)$(libdir) \ |
| $(DESTDIR)$(includedir)/ss $(DESTDIR)$(datadir)/ss \ |
| $(DESTDIR)$(bindir) $(DESTDIR)$(libdir)/pkgconfig |
| |
| install:: libss.a $(INSTALL_HFILES) installdirs ss_err.h mk_cmds ss.pc |
| $(E) " INSTALL_DATA $(DESTDIR)$(libdir)/libss.a" |
| $(Q) $(INSTALL_DATA) libss.a $(DESTDIR)$(libdir)/libss.a |
| -$(Q) $(RANLIB) $(DESTDIR)$(libdir)/libss.a |
| $(Q) $(CHMOD) $(LIBMODE) $(DESTDIR)$(libdir)/libss.a |
| $(Q) $(RM) -f $(DESTDIR)$(includedir)/ss/* |
| $(Q) for i in $(INSTALL_HFILES); do \ |
| echo " INSTALL_DATA $(DESTDIR)$(includedir)/ss/$$i"; \ |
| $(INSTALL_DATA) $(srcdir)/$$i $(DESTDIR)$(includedir)/ss/$$i; \ |
| done |
| $(E) " INSTALL_DATA $(includedir)/ss/ss_err.h" |
| $(Q) $(INSTALL_DATA) ss_err.h $(DESTDIR)$(includedir)/ss/ss_err.h |
| $(Q) for i in $(SHARE_FILES); do \ |
| echo " INSTALL_DATA $(DESTDIR)$(datadir)/ss/$$i"; \ |
| $(INSTALL_DATA) $(srcdir)/$$i $(DESTDIR)$(datadir)/ss/$$i; \ |
| done |
| $(E) " INSTALL $(bindir)/mk_cmds" |
| $(Q) $(INSTALL) mk_cmds $(DESTDIR)$(bindir)/mk_cmds |
| $(E) " INSTALL_DATA $(man1dir)/mk_cmds.1" |
| $(Q) $(INSTALL_DATA) $(srcdir)/mk_cmds.1 $(DESTDIR)$(man1dir)/mk_cmds.1 |
| $(E) " INSTALL_DATA $(libdir)/pkgconfig/ss.pc" |
| $(Q) $(INSTALL_DATA) ss.pc $(DESTDIR)$(libdir)/pkgconfig/ss.pc |
| |
| uninstall:: |
| $(RM) -f $(DESTDIR)$(libdir)/libss.a $(DESTDIR)$(bindir)/mk_cmds \ |
| $(DESTDIR)$(libdir)/pkgconfig/ss.pc \ |
| $(DESTDIR)$(man1dir)/mk_cmds.1 |
| $(RM) -rf $(DESTDIR)$(includedir)/ss $(DESTDIR)$(datadir)/ss |
| |
| test_ss: test_ss.o test_cmd.o $(DEPLIBSS) $(DEPLIBCOM_ERR) |
| $(E) " LD $@" |
| $(Q) $(CC) -o $@ test_ss.o test_cmd.o $(ALL_CFLAGS) \ |
| $(LIBSS) $(LIBCOM_ERR) |
| |
| check:: all test_ss |
| $(E) " RUN TEST test_ss" |
| -@(LD_LIBRARY_PATH=$(LIB) DYLD_LIBRARY_PATH=$(LIB) ./test_ss -f $(srcdir)/test_script > test_out 2>&1; exit 0) |
| $(Q) if diff test_out $(srcdir)/test_script_expected > test.diff; then \ |
| true ; else echo "Regression test for ss library failed!"; exit 1 ; fi |
| |
| clean:: |
| $(RM) -f ../libss.a libss.a mk_cmds ss_err.h ss_err.c std_rqs.c \ |
| tst_cmds.c test_ss test_out test.diff *.o *~ \#* *.bak core \ |
| test_cmd.c |
| |
| mostlyclean:: clean |
| distclean:: clean |
| $(RM) -f .depend Makefile ss.pc \ |
| $(srcdir)/TAGS $(srcdir)/Makefile.in.old |
| |
| # |
| # Hack to parallel makes recognize dependencies correctly. |
| # |
| $(top_builddir)/lib/ss/ss_err.h: ss_err.h |
| |
| $(OBJS): subdirs |
| |
| # +++ Dependency line eater +++ |
| # |
| # Makefile dependencies follow. This must be the last section in |
| # the Makefile.in file |
| # |
| invocation.o: $(srcdir)/invocation.c $(srcdir)/ss_internal.h $(srcdir)/ss.h \ |
| $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h |
| help.o: $(srcdir)/help.c $(srcdir)/ss_internal.h $(srcdir)/ss.h \ |
| $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h |
| execute_cmd.o: $(srcdir)/execute_cmd.c $(srcdir)/ss_internal.h $(srcdir)/ss.h \ |
| $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h |
| listen.o: $(srcdir)/listen.c $(srcdir)/ss_internal.h $(srcdir)/ss.h \ |
| $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h |
| parse.o: $(srcdir)/parse.c $(srcdir)/ss_internal.h $(srcdir)/ss.h \ |
| $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h |
| error.o: $(srcdir)/error.c $(top_srcdir)/lib/et/com_err.h \ |
| $(srcdir)/ss_internal.h $(srcdir)/ss.h $(top_builddir)/lib/ss/ss_err.h \ |
| $(top_srcdir)/lib/et/com_err.h |
| prompt.o: $(srcdir)/prompt.c $(srcdir)/ss_internal.h $(srcdir)/ss.h \ |
| $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h |
| request_tbl.o: $(srcdir)/request_tbl.c $(srcdir)/ss_internal.h $(srcdir)/ss.h \ |
| $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h |
| list_rqs.o: $(srcdir)/list_rqs.c $(srcdir)/ss_internal.h $(srcdir)/ss.h \ |
| $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h |
| pager.o: $(srcdir)/pager.c $(srcdir)/ss_internal.h $(srcdir)/ss.h \ |
| $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h |
| requests.o: $(srcdir)/requests.c $(srcdir)/ss_internal.h $(srcdir)/ss.h \ |
| $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h |
| data.o: $(srcdir)/data.c $(srcdir)/ss_internal.h $(srcdir)/ss.h \ |
| $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h |
| get_readline.o: $(srcdir)/get_readline.c $(srcdir)/ss_internal.h \ |
| $(srcdir)/ss.h $(top_builddir)/lib/ss/ss_err.h \ |
| $(top_srcdir)/lib/et/com_err.h |