Whamcloud - gitweb
Merge branch 'maint' into next
[tools/e2fsprogs.git] / lib / ss / Makefile.in
index 9af2c2f..28bcfd5 100644 (file)
@@ -6,56 +6,42 @@ 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
 
-DLL_ADDRESS = 0x66880000
-DLL_JUMPSIZE = 0x1000
-DLL_GOTSIZE  = 0x1000
-DLL_VERSION = 1.0
-DLL_IMAGE = libss
-DLL_STUB = libss
-DLL_LIBS = -L../.. -lcom_err
-DLL_MYDIR = ss
-DLL_INSTALL_DIR = $(libdir)
-
 ELF_VERSION = 2.0
 ELF_SO_VERSION = 2
 ELF_IMAGE = libss
 ELF_MYDIR = ss
-ELF_INSTALL_DIR = $(libdir)
+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 = $(libdir)
+BSDLIB_INSTALL_DIR = $(root_libdir)
 
 TAGS=etags
-COMPILE_ET=../et/compile_et
-MK_CMDS=./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=-DPOSIX_SIGNALS -I$(srcdir)/../et
+COMPILE_ET=../et/compile_et --build-tree
+MK_CMDS=_SS_DIR_OVERRIDE=. ./mk_cmds
 
 .c.o:
-       $(CC) $(ALL_CFLAGS) -c $<
-@PROFILE_CMT@  $(CC) $(ALL_CFLAGS) -pg -o profiled/$*.o -c $<
-@CHECKER_CMT@  $(CC) $(ALL_CFLAGS) -checker -g -o checker/$*.o -c $<
-@DLL_CMT@      (export JUMP_DIR=`pwd`/jump; $(CC) -B$(JUMP_PREFIX) \
-@DLL_CMT@              $(ALL_CFLAGS) -o jump/$*.o -c $<)
-@ELF_CMT@      $(CC) $(ALL_CFLAGS) -fPIC -o elfshared/$*.o -c $<
-@BSDLIB_CMT@   $(CC) $(ALL_CFLAGS) -fpic -o pic/$*.o -c $<
+       $(E) "  CC $<"
+       $(Q) $(CC) $(ALL_CFLAGS) -c $<
+       $(Q) $(CHECK_CMD) $(ALL_CFLAGS) $<
+@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
 
-LIB=   libss.a
-
 # with ss_err.o first, ss_err.h should get rebuilt first too.  should not
 # be relying on this, though.
 OBJS=  ss_err.o \
@@ -63,18 +49,17 @@ OBJS=       ss_err.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
+       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)/data.c $(srcdir)/get_readline.c
 
 all:: mk_cmds
 
 @MAKEFILE_LIBRARY@
-@MAKEFILE_DLL@
 @MAKEFILE_ELF@
 @MAKEFILE_BSDLIB@
 @MAKEFILE_PROFILE@
@@ -89,9 +74,10 @@ 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 copyright.h 
+HFILES=        ss.h ss_internal.h
+SHARE_FILES= ct_c.awk ct_c.sed
 
-INSTALL_HFILES=        ss.h ss_err.h copyright.h 
+INSTALL_HFILES=        ss.h 
 
 # for 'tags' and dependencies
 
@@ -101,15 +87,23 @@ CFILES=    $(SRCS) $(MKCMDSCSRCS) test_ss.c
 
 FILES= $(SRCS) $(MKCMDSFILES) $(HFILES) \
        ss_err.et std_rqs.ct Makefile \
-       test_ss.c ss copyright.h
+       test_ss.c ss 
+
+all::  libss.a ss.pc # libss_p.a lint
 
-all::  libss.a # 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.c: std_rqs.ct $(MK_CMDS)
-       $(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
-       $(COMPILE_ET) $(srcdir)/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.*
@@ -121,64 +115,119 @@ ct.tab.c ct.tab.h: ct.y
 #      $(LD) -r -s -o $@ $(OBJS)
 #      $(CHMOD) -x $@
 
-mk_cmds: $(SUBSTITUTE) $(srcdir)/mk_cmds.sh.in
-       -$(CHMOD) +x $(SUBSTITUTE) 
-       $(SUBSTITUTE) $(srcdir)/mk_cmds.sh.in mk_cmds
-       $(CHMOD) +x mk_cmds
+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::
-       $(top_srcdir)/mkinstalldirs $(DESTDIR)$(ulibdir) \
-               $(DESTDIR)$(includedir)/ss
-
-install:: libss.a $(INSTALL_HFILES) copyright.h installdirs
-       $(INSTALL_DATA) libss.a $(DESTDIR)$(ulibdir)/libss.a
-       $(CHMOD) 644 $(DESTDIR)$(ulibdir)/libss.a
-       -$(RANLIB) $(DESTDIR)$(ulibdir)/libss.a
-       $(CHMOD) $(LIBMODE) $(DESTDIR)$(ulibdir)/libss.a
-       $(RM) -f $(includedir)/ss/*
-       for i in $(INSTALL_HFILES) copyright.h; do \
+       $(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 $(ulibdir)/libss.a
-       $(RM) -rf $(includedir)/ss
+       $(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) $(SYSLIBS)
+
+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 \
-               *.o *~ \#* *.bak core 
+               tst_cmds.c test_ss test_out test.diff *.o *~ \#* *.bak core \
+               test_cmd.c
 
 mostlyclean:: clean
 distclean:: clean
-       $(RM) -f .depend Makefile
+       $(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 \
- $(srcdir)/copyright.h $(top_builddir)/lib/ss/ss_err.h
-help.o: $(srcdir)/help.c $(srcdir)/ss_internal.h $(srcdir)/ss.h \
- $(srcdir)/copyright.h $(top_builddir)/lib/ss/ss_err.h
-execute_cmd.o: $(srcdir)/execute_cmd.c $(srcdir)/ss_internal.h \
- $(srcdir)/ss.h $(srcdir)/copyright.h $(top_builddir)/lib/ss/ss_err.h
-listen.o: $(srcdir)/listen.c $(srcdir)/copyright.h $(srcdir)/ss_internal.h \
- $(srcdir)/ss.h $(top_builddir)/lib/ss/ss_err.h
-parse.o: $(srcdir)/parse.c $(srcdir)/ss_internal.h $(srcdir)/ss.h \
- $(srcdir)/copyright.h $(top_builddir)/lib/ss/ss_err.h
-error.o: $(srcdir)/error.c $(srcdir)/copyright.h $(srcdir)/../et/com_err.h \
- $(srcdir)/ss_internal.h $(srcdir)/ss.h $(top_builddir)/lib/ss/ss_err.h
-prompt.o: $(srcdir)/prompt.c $(srcdir)/copyright.h $(srcdir)/ss_internal.h \
- $(srcdir)/ss.h $(top_builddir)/lib/ss/ss_err.h
-request_tbl.o: $(srcdir)/request_tbl.c $(srcdir)/copyright.h \
+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
-list_rqs.o: $(srcdir)/list_rqs.c $(srcdir)/copyright.h \
- $(srcdir)/ss_internal.h $(srcdir)/ss.h $(top_builddir)/lib/ss/ss_err.h
-pager.o: $(srcdir)/pager.c $(srcdir)/ss_internal.h $(srcdir)/ss.h \
- $(srcdir)/copyright.h $(top_builddir)/lib/ss/ss_err.h
-requests.o: $(srcdir)/requests.c $(srcdir)/copyright.h \
- $(srcdir)/ss_internal.h $(srcdir)/ss.h $(top_builddir)/lib/ss/ss_err.h
-data.o: $(srcdir)/data.c $(srcdir)/ss_internal.h $(srcdir)/ss.h \
- $(srcdir)/copyright.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