234 lines
		
	
	
		
			7.9 KiB
		
	
	
	
		
			Makefile
		
	
	
	
			
		
		
	
	
			234 lines
		
	
	
		
			7.9 KiB
		
	
	
	
		
			Makefile
		
	
	
	
| #
 | |
| # Makefile for lib/ss
 | |
| #
 | |
| 
 | |
| srcdir = @srcdir@
 | |
| top_srcdir = @top_srcdir@
 | |
| VPATH = @srcdir@
 | |
| top_builddir = ../..
 | |
| my_dir = lib/ss
 | |
| INSTALL = @INSTALL@
 | |
| MKDIR_P = @MKDIR_P@
 | |
| 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 = -lcom_err $(DLOPEN_LIB)
 | |
| 
 | |
| BSDLIB_VERSION = 1.0
 | |
| BSDLIB_IMAGE = libss
 | |
| BSDLIB_MYDIR = ss
 | |
| BSDLIB_INSTALL_DIR = $(root_libdir)
 | |
| 
 | |
| TAGS=etags
 | |
| MK_CMDS=	_SS_DIR_OVERRIDE=$(srcdir) ./mk_cmds
 | |
| COMPILE_ET=	_ET_DIR_OVERRIDE=$(srcdir)/../et ../et/compile_et
 | |
| 
 | |
| .c.o:
 | |
| 	$(E) "	CC $<"
 | |
| 	$(Q) $(CC) $(ALL_CFLAGS_STLIB) -c $<
 | |
| 	$(Q) $(CHECK_CMD) $(ALL_CFLAGS) $<
 | |
| 	$(Q) $(CPPCHECK_CMD) $(CPPFLAGS) $<
 | |
| @PROFILE_CMT@	$(Q) $(CC) $(ALL_CFLAGS_STLIB) -g -pg -o profiled/$*.o -c $<
 | |
| @ELF_CMT@	$(Q) $(CC) $(ALL_CFLAGS_SHLIB) -DSHARED_ELF_LIB -fPIC -shared -o elfshared/$*.o -c $<
 | |
| @BSDLIB_CMT@	$(Q) $(CC) $(ALL_CFLAGS_SHLIB) $(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@
 | |
| 
 | |
| 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) "	MKDIR_P $(libdir) $(includedir)/ss $(datadir)/ss $(bindir)"
 | |
| 	$(Q) $(MKDIR_P) $(DESTDIR)$(libdir) \
 | |
| 		$(DESTDIR)$(includedir)/ss $(DESTDIR)$(datadir)/ss \
 | |
| 		$(DESTDIR)$(bindir) $(DESTDIR)$(pkgconfigdir)
 | |
| 
 | |
| 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 $(pkgconfigdir)/ss.pc"
 | |
| 	$(Q) $(INSTALL_DATA) ss.pc $(DESTDIR)$(pkgconfigdir)/ss.pc
 | |
| 
 | |
| uninstall::
 | |
| 	$(RM) -f $(DESTDIR)$(libdir)/libss.a $(DESTDIR)$(bindir)/mk_cmds \
 | |
| 		$(DESTDIR)$(pkgconfigdir)/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) $(ALL_LDFLAGS) \
 | |
| 		$(LIBSS) $(LIBCOM_ERR) $(SYSLIBS)
 | |
| 
 | |
| fullcheck check:: all test_ss
 | |
| 	$(E) "	RUN TEST test_ss"
 | |
| 	-@($(TESTENV) ./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 ss.pc
 | |
| 
 | |
| 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 $(top_builddir)/lib/config.h \
 | |
|  $(top_builddir)/lib/dirpaths.h $(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 $(top_builddir)/lib/config.h \
 | |
|  $(top_builddir)/lib/dirpaths.h $(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 $(top_builddir)/lib/config.h \
 | |
|  $(top_builddir)/lib/dirpaths.h $(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 $(top_builddir)/lib/config.h \
 | |
|  $(top_builddir)/lib/dirpaths.h $(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 $(top_builddir)/lib/config.h \
 | |
|  $(top_builddir)/lib/dirpaths.h $(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_builddir)/lib/config.h \
 | |
|  $(top_builddir)/lib/dirpaths.h $(top_srcdir)/lib/et/com_err.h \
 | |
|  $(srcdir)/ss_internal.h $(srcdir)/ss.h $(top_builddir)/lib/ss/ss_err.h
 | |
| prompt.o: $(srcdir)/prompt.c $(top_builddir)/lib/config.h \
 | |
|  $(top_builddir)/lib/dirpaths.h $(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 $(top_builddir)/lib/config.h \
 | |
|  $(top_builddir)/lib/dirpaths.h $(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 $(top_builddir)/lib/config.h \
 | |
|  $(top_builddir)/lib/dirpaths.h $(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 $(top_builddir)/lib/config.h \
 | |
|  $(top_builddir)/lib/dirpaths.h $(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 $(top_builddir)/lib/config.h \
 | |
|  $(top_builddir)/lib/dirpaths.h $(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 $(top_builddir)/lib/config.h \
 | |
|  $(top_builddir)/lib/dirpaths.h $(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 $(top_builddir)/lib/config.h \
 | |
|  $(top_builddir)/lib/dirpaths.h $(srcdir)/ss_internal.h $(srcdir)/ss.h \
 | |
|  $(top_builddir)/lib/ss/ss_err.h $(top_srcdir)/lib/et/com_err.h
 |