diff --git a/configure.ac b/configure.ac index d526791ef1e5..e5fe896e8d9c 100644 --- a/configure.ac +++ b/configure.ac @@ -180,6 +180,7 @@ AC_CONFIG_FILES( \ src/common/libflux/Makefile \ src/common/libsubprocess/Makefile \ src/common/libcompat/Makefile \ + src/common/liboptparse/Makefile \ src/lib/Makefile \ src/lib/libpmi/Makefile \ src/bindings/Makefile \ diff --git a/etc/flux-core.pc.in b/etc/flux-core.pc.in index f4216a2ad122..b5677d2140c3 100644 --- a/etc/flux-core.pc.in +++ b/etc/flux-core.pc.in @@ -6,5 +6,5 @@ includedir=@includedir@ Name: flux-core Description: Flux Resource Manager Framework Core Version: @PACKAGE_VERSION@ -Libs: -L${libdir} -lflux-jsc -lflux-live -lflux-kvs -lflux-barrier -lflux-core +Libs: -L${libdir} -lflux-jsc -lflux-live -lflux-kvs -lflux-barrier -lflux-core -lflux-optparse Cflags: -I${includedir} diff --git a/src/Makefile.am b/src/Makefile.am index 3e84dd83eb82..b133e48e2015 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -6,4 +6,6 @@ SUBDIRS = common modules lib broker connectors bindings cmd test check-local: all -noinst_HEADERS = include/flux/core.h +noinst_HEADERS = \ + include/flux/core.h \ + include/flux/optparse.h diff --git a/src/cmd/Makefile.am b/src/cmd/Makefile.am index f56b1d2d3bd3..09427f71aa26 100644 --- a/src/cmd/Makefile.am +++ b/src/cmd/Makefile.am @@ -12,6 +12,7 @@ AM_CPPFLAGS = \ fluxcmd_ldadd = \ $(top_builddir)/src/common/libflux-internal.la \ $(top_builddir)/src/common/libflux-core.la \ + $(top_builddir)/src/common/libflux-optparse.la \ $(top_builddir)/src/modules/kvs/libflux-kvs.la \ $(top_builddir)/src/modules/live/libflux-live.la \ $(JSON_LIBS) $(ZMQ_LIBS) $(LIBMUNGE) $(LIBPTHREAD) $(LIBDL) diff --git a/src/cmd/builtin.h b/src/cmd/builtin.h index 27541b68f7e8..7105474ce352 100644 --- a/src/cmd/builtin.h +++ b/src/cmd/builtin.h @@ -23,9 +23,9 @@ \*****************************************************************************/ #include +#include #include "src/common/libutil/xzmalloc.h" #include "src/common/libutil/log.h" -#include "src/common/libutil/optparse.h" typedef int (*register_cmd_f) (optparse_t *p); diff --git a/src/cmd/flux-event.c b/src/cmd/flux-event.c index c07516771ce2..824d62d5764c 100644 --- a/src/cmd/flux-event.c +++ b/src/cmd/flux-event.c @@ -30,9 +30,9 @@ #include #include #include +#include #include "src/common/libutil/log.h" -#include "src/common/libutil/optparse.h" static int event_pub (optparse_t *p, int argc, char **argv); diff --git a/src/cmd/flux-start.c b/src/cmd/flux-start.c index 78f08c7fcf60..6738f568a84d 100644 --- a/src/cmd/flux-start.c +++ b/src/cmd/flux-start.c @@ -31,12 +31,12 @@ #include #include #include +#include #include #include "src/common/libutil/xzmalloc.h" #include "src/common/libutil/log.h" #include "src/common/libutil/oom.h" -#include "src/common/libutil/optparse.h" #include "src/common/libutil/cleanup.h" #include "src/common/libpmi-server/simple.h" #include "src/common/libsubprocess/subprocess.h" diff --git a/src/cmd/flux.c b/src/cmd/flux.c index e0e5a58726d7..40ae2b2a662d 100644 --- a/src/cmd/flux.c +++ b/src/cmd/flux.c @@ -36,12 +36,12 @@ #include #include #include +#include #include #include "src/common/libutil/log.h" #include "src/common/libutil/xzmalloc.h" #include "src/common/libutil/shortjson.h" -#include "src/common/libutil/optparse.h" #include "src/common/libutil/environment.h" #include "cmdhelp.h" diff --git a/src/common/Makefile.am b/src/common/Makefile.am index fde10fe2c027..4284ddd6c7c4 100644 --- a/src/common/Makefile.am +++ b/src/common/Makefile.am @@ -1,5 +1,5 @@ SUBDIRS = libtap libev libsophia libminilzo libpmi-client libpmi-server \ - liblsd libutil libflux libsubprocess libcompat + liblsd libutil libflux libsubprocess libcompat liboptparse AM_CFLAGS = @GCCWARN@ $(CODE_COVERAGE_CFLAGS) AM_LDFLAGS = $(CODE_COVERAGE_LDFLAGS) @@ -23,14 +23,25 @@ libflux_internal_la_LIBADD = \ $(LIBDL) $(LIBRT) libflux_internal_la_LDFLAGS = -Wl,--no-undefined -lib_LTLIBRARIES = libflux-core.la +lib_LTLIBRARIES = libflux-core.la libflux-optparse.la + libflux_core_la_SOURCES = libflux_core_la_LIBADD = \ $(builddir)/libflux/libflux.la \ libflux-internal.la +libflux_core_la_LDFLAGS = \ + -Wl,--version-script=$(srcdir)/libflux-core.map \ + -shared -export-dynamic --disable-static \ + -Wl,--no-undefined -libflux_core_la_LDFLAGS = -Wl,--version-script=$(srcdir)/version.map \ - -shared -export-dynamic --disable-static \ - -Wl,--no-undefined +libflux_optparse_la_SOURCES = +libflux_optparse_la_LIBADD = \ + $(builddir)/liboptparse/liboptparse.la \ + $(builddir)/liblsd/liblsd.la \ + $(ZMQ_LIBS) $(LIBPTHREAD) +libflux_optparse_la_LDFLAGS = \ + -Wl,--version-script=$(srcdir)/libflux-optparse.map \ + -shared -export-dynamic --disable-static \ + -Wl,--no-undefined -EXTRA_DIST = version.map +EXTRA_DIST = libflux-core.map libflux-optparse.map diff --git a/src/common/version.map b/src/common/libflux-core.map similarity index 100% rename from src/common/version.map rename to src/common/libflux-core.map diff --git a/src/common/libflux-optparse.map b/src/common/libflux-optparse.map new file mode 100644 index 000000000000..94774566b1e8 --- /dev/null +++ b/src/common/libflux-optparse.map @@ -0,0 +1,5 @@ +{ global: + optparse_*; + local: *; +}; + diff --git a/src/common/liboptparse/Makefile.am b/src/common/liboptparse/Makefile.am new file mode 100644 index 000000000000..cf28527c988c --- /dev/null +++ b/src/common/liboptparse/Makefile.am @@ -0,0 +1,38 @@ +AM_CFLAGS = \ + @GCCWARN@ \ + $(CODE_COVERAGE_CFLAGS) + +AM_LDFLAGS = \ + $(CODE_COVERAGE_LDFLAGS) + +AM_CPPFLAGS = \ + -I$(top_srcdir) -I$(top_srcdir)/src/include \ + $(ZMQ_CFLAGS) + +noinst_LTLIBRARIES = liboptparse.la +fluxinclude_HEADERS = optparse.h +liboptparse_la_SOURCES = optparse.c + +liboptparse_la_CPPFLAGS = \ + $(AM_CPPFLAGS) +liboptparse_la_LDFLAGS = \ + -avoid-version -module -shared -export-dynamic \ + $(AM_LDFLAGS) + + +TESTS = test_optparse.t + +check_PROGRAMS = $(TESTS) + +TEST_EXTENSIONS = .t +T_LOG_DRIVER = env AM_TAP_AWK='$(AWK)' $(SHELL) \ + $(top_srcdir)/config/tap-driver.sh + +test_optparse_t_SOURCES = test/optparse.c +test_optparse_t_CPPFLAGS = $(AM_CPPFLAGS) +test_optparse_t_LDADD = \ + $(top_builddir)/src/common/libtap/libtap.la \ + $(top_builddir)/src/common/liboptparse/liboptparse.la \ + $(top_builddir)/src/common/liblsd/liblsd.la \ + $(top_builddir)/src/common/libutil/libutil.la \ + $(ZMQ_LIBS) $(LIBPTHREAD) diff --git a/src/common/libutil/optparse.c b/src/common/liboptparse/optparse.c similarity index 100% rename from src/common/libutil/optparse.c rename to src/common/liboptparse/optparse.c diff --git a/src/common/libutil/optparse.h b/src/common/liboptparse/optparse.h similarity index 100% rename from src/common/libutil/optparse.h rename to src/common/liboptparse/optparse.h diff --git a/src/common/libutil/test/optparse.c b/src/common/liboptparse/test/optparse.c similarity index 99% rename from src/common/libutil/test/optparse.c rename to src/common/liboptparse/test/optparse.c index 39116b06c1fb..467a88947278 100644 --- a/src/common/libutil/test/optparse.c +++ b/src/common/liboptparse/test/optparse.c @@ -1,5 +1,5 @@ #include "src/common/libtap/tap.h" -#include "src/common/libutil/optparse.h" +#include "src/common/liboptparse/optparse.h" #include "src/common/libutil/sds.h" static void *myfatal_h = NULL; diff --git a/src/common/libutil/Makefile.am b/src/common/libutil/Makefile.am index c53a698172ab..e03cf292276a 100644 --- a/src/common/libutil/Makefile.am +++ b/src/common/libutil/Makefile.am @@ -27,8 +27,6 @@ libutil_la_SOURCES = \ monotime.h \ setenvf.c \ setenvf.h \ - optparse.c \ - optparse.h \ tstat.c \ tstat.h \ veb.c \ @@ -80,7 +78,6 @@ libutil_la_SOURCES = \ EXTRA_DIST = veb_mach.c TESTS = test_nodeset.t \ - test_optparse.t \ test_ev.t \ test_coproc.t \ test_base64.t \ @@ -119,10 +116,6 @@ test_nodeset_t_SOURCES = test/nodeset.c test_nodeset_t_CPPFLAGS = $(test_cppflags) test_nodeset_t_LDADD = $(test_ldadd) -test_optparse_t_SOURCES = test/optparse.c -test_optparse_t_CPPFLAGS = $(test_cppflags) -test_optparse_t_LDADD = $(test_ldadd) - test_ev_t_SOURCES = test/ev.c test_ev_t_CPPFLAGS = $(test_cppflags) test_ev_t_LDADD = $(test_ldadd) diff --git a/src/include/flux/optparse.h b/src/include/flux/optparse.h new file mode 100644 index 000000000000..b5d1a686e22a --- /dev/null +++ b/src/include/flux/optparse.h @@ -0,0 +1,4 @@ +/* Allow in-tree programs to #include like out-of-tree would. + */ + +#include "src/common/liboptparse/optparse.h" diff --git a/src/modules/live/Makefile.am b/src/modules/live/Makefile.am index c83307525179..8d8e0d2320b1 100644 --- a/src/modules/live/Makefile.am +++ b/src/modules/live/Makefile.am @@ -18,6 +18,7 @@ live_la_SOURCES = live.c live_la_LDFLAGS = $(fluxmod_ldflags) -module live_la_LIBADD = $(top_builddir)/src/common/libflux-internal.la \ $(top_builddir)/src/common/libflux-core.la \ + $(top_builddir)/src/common/libflux-optparse.la \ $(top_builddir)/src/modules/kvs/libflux-kvs.la \ $(top_builddir)/src/modules/barrier/libflux-barrier.la \ $(JSON_LIBS) $(ZMQ_LIBS) diff --git a/src/modules/live/live.c b/src/modules/live/live.c index 0f9eb959ea85..83714ec0727d 100644 --- a/src/modules/live/live.c +++ b/src/modules/live/live.c @@ -82,6 +82,7 @@ #include #include #include +#include #include #include "src/modules/kvs/kvs_deprecated.h" @@ -90,7 +91,6 @@ #include "src/common/libutil/log.h" #include "src/common/libutil/shortjson.h" #include "src/common/libutil/nodeset.h" -#include "src/common/libutil/optparse.h" typedef enum { CS_OK, CS_SLOW, CS_FAIL, CS_UNKNOWN } cstate_t; diff --git a/src/modules/wreck/Makefile.am b/src/modules/wreck/Makefile.am index ececd7800c97..bc4d4063a24f 100644 --- a/src/modules/wreck/Makefile.am +++ b/src/modules/wreck/Makefile.am @@ -50,6 +50,7 @@ wrexecd_libs = \ $(top_builddir)/src/bindings/lua/libfluxlua.la \ $(top_builddir)/src/common/libflux-internal.la \ $(top_builddir)/src/common/libflux-core.la \ + $(top_builddir)/src/common/libflux-optparse.la \ $(top_builddir)/src/modules/libkz/libkz.la \ $(top_builddir)/src/modules/kvs/libflux-kvs.la diff --git a/src/modules/wreck/wrexecd.c b/src/modules/wreck/wrexecd.c index c6c1eba384cc..f6b9955577e6 100644 --- a/src/modules/wreck/wrexecd.c +++ b/src/modules/wreck/wrexecd.c @@ -43,7 +43,7 @@ #include -#include "src/common/libutil/optparse.h" +#include "src/common/liboptparse/optparse.h" #include "src/common/libutil/xzmalloc.h" #include "src/common/libutil/sds.h" #include "src/common/libutil/fdwalk.h"