blob: 4a2bdb1b41834e5457f700018bdc77196df6baf2 [file] [log] [blame] [edit]
#
# 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