diff --git a/Makefile.am b/Makefile.am index c92df7f..b08a4de 100644 --- a/Makefile.am +++ b/Makefile.am @@ -42,14 +42,22 @@ hclgo_DEPENDENCIES = hclgo.bin ## let the linker to move hclgo.bin to the actual target hclgo_LINK = cp -pf hclgo.bin hclgo$(EXEEXT) || echo "FAILED TO LINK" +if ENABLE_STATIC +CGO_CFLAGS_EXTRA="-static" +CGO_LDFLAGS_EXTRA="-static" +else +CGO_CFLAGS_EXTRA="" +CGO_LDFLAGS_EXTRA="" +endif + hclgo.bin: lib/libhcl.la $(hclgo_OBJECTS) cp -pf $(srcdir)/go.mod $(builddir)/go.mod >/dev/null 2>&1 || true chmod u+w $(builddir)/go.mod ## with `make distcheck`, the echo's redirection to the file fails without this permission change [ -f $(srcdir)/go.sum ] && cp -pf $(srcdir)/go.sum $(builddir)/go.sum >/dev/null 2>&1 || true ## --------------------------------------------------------------- CC=$(CC) \ - CGO_CFLAGS="-I$(abs_srcdir)/lib -I$(abs_builddir)/lib $(CFLAGS)" \ - CGO_LDFLAGS="-L$(abs_builddir)/lib -L$(abs_builddir)/lib/.libs -lhcl -ldl $(LIBM)" \ + CGO_CFLAGS="-I$(abs_srcdir)/lib -I$(abs_builddir)/lib $(CFLAGS) $(CGO_CFLAGS_EXTRA)" \ + CGO_LDFLAGS="-L$(abs_builddir)/lib -L$(abs_builddir)/lib/.libs -lhcl -ldl $(LIBM) $(CGO_LDFLAGS_EXTRA)" \ go build -C $(srcdir) -ldflags "-X 'main.BINDIR=$(bindir)' -X 'main.SBINDIR=$(sbindir)' -X 'main.LIBDIR=$(libdir)' -X 'main.SYSCONFDIR=$(sysconfdir)'" -x -o $(abs_builddir)/hclgo.bin -modfile $(abs_builddir)/go.mod ## --------------------------------------------------------------- go clean -C $(srcdir) -x -modfile $(abs_builddir)/go.mod diff --git a/Makefile.in b/Makefile.in index 5bb3875..e287fe3 100644 --- a/Makefile.in +++ b/Makefile.in @@ -373,6 +373,10 @@ DIST_SUBDIRS = $(SUBDIRS) pas @ENABLE_HCLGO_TRUE@hclgo_DEPENDENCIES = hclgo.bin @ENABLE_HCLGO_TRUE@hclgo_LINK = cp -pf hclgo.bin hclgo$(EXEEXT) || echo "FAILED TO LINK" +@ENABLE_HCLGO_TRUE@@ENABLE_STATIC_FALSE@CGO_CFLAGS_EXTRA = "" +@ENABLE_HCLGO_TRUE@@ENABLE_STATIC_TRUE@CGO_CFLAGS_EXTRA = "-static" +@ENABLE_HCLGO_TRUE@@ENABLE_STATIC_FALSE@CGO_LDFLAGS_EXTRA = "" +@ENABLE_HCLGO_TRUE@@ENABLE_STATIC_TRUE@CGO_LDFLAGS_EXTRA = "-static" all: all-recursive .SUFFIXES: @@ -938,8 +942,8 @@ clean-local: @ENABLE_HCLGO_TRUE@ chmod u+w $(builddir)/go.mod ## with `make distcheck`, the echo's redirection to the file fails without this permission change @ENABLE_HCLGO_TRUE@ [ -f $(srcdir)/go.sum ] && cp -pf $(srcdir)/go.sum $(builddir)/go.sum >/dev/null 2>&1 || true @ENABLE_HCLGO_TRUE@ CC=$(CC) \ -@ENABLE_HCLGO_TRUE@ CGO_CFLAGS="-I$(abs_srcdir)/lib -I$(abs_builddir)/lib $(CFLAGS)" \ -@ENABLE_HCLGO_TRUE@ CGO_LDFLAGS="-L$(abs_builddir)/lib -L$(abs_builddir)/lib/.libs -lhcl -ldl $(LIBM)" \ +@ENABLE_HCLGO_TRUE@ CGO_CFLAGS="-I$(abs_srcdir)/lib -I$(abs_builddir)/lib $(CFLAGS) $(CGO_CFLAGS_EXTRA)" \ +@ENABLE_HCLGO_TRUE@ CGO_LDFLAGS="-L$(abs_builddir)/lib -L$(abs_builddir)/lib/.libs -lhcl -ldl $(LIBM) $(CGO_LDFLAGS_EXTRA)" \ @ENABLE_HCLGO_TRUE@ go build -C $(srcdir) -ldflags "-X 'main.BINDIR=$(bindir)' -X 'main.SBINDIR=$(sbindir)' -X 'main.LIBDIR=$(libdir)' -X 'main.SYSCONFDIR=$(sysconfdir)'" -x -o $(abs_builddir)/hclgo.bin -modfile $(abs_builddir)/go.mod @ENABLE_HCLGO_TRUE@ go clean -C $(srcdir) -x -modfile $(abs_builddir)/go.mod diff --git a/configure b/configure index 2dc1bb9..b48f212 100755 --- a/configure +++ b/configure @@ -675,6 +675,10 @@ ENABLE_LIBUNWIND_FALSE ENABLE_LIBUNWIND_TRUE ENABLE_LIBLTDL_FALSE ENABLE_LIBLTDL_TRUE +ENABLE_SHARED_FALSE +ENABLE_SHARED_TRUE +ENABLE_STATIC_FALSE +ENABLE_STATIC_TRUE ENABLE_STATIC_MODULE_FALSE ENABLE_STATIC_MODULE_TRUE ENABLE_DYNAMIC_MODULE_FALSE @@ -18717,6 +18721,24 @@ else fi + + if test "x${enable_static_is}" = "xyes"; then + ENABLE_STATIC_TRUE= + ENABLE_STATIC_FALSE='#' +else + ENABLE_STATIC_TRUE='#' + ENABLE_STATIC_FALSE= +fi + + if test "x${enable_shared_is}" = "xyes"; then + ENABLE_SHARED_TRUE= + ENABLE_SHARED_FALSE='#' +else + ENABLE_SHARED_TRUE='#' + ENABLE_SHARED_FALSE= +fi + + # Check whether --enable-libltdl was given. if test ${enable_libltdl+y} then : @@ -19010,6 +19032,14 @@ if test -z "${ENABLE_STATIC_MODULE_TRUE}" && test -z "${ENABLE_STATIC_MODULE_FAL as_fn_error $? "conditional \"ENABLE_STATIC_MODULE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${ENABLE_STATIC_TRUE}" && test -z "${ENABLE_STATIC_FALSE}"; then + as_fn_error $? "conditional \"ENABLE_STATIC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${ENABLE_SHARED_TRUE}" && test -z "${ENABLE_SHARED_FALSE}"; then + as_fn_error $? "conditional \"ENABLE_SHARED\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${ENABLE_LIBLTDL_TRUE}" && test -z "${ENABLE_LIBLTDL_FALSE}"; then as_fn_error $? "conditional \"ENABLE_LIBLTDL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 diff --git a/configure.ac b/configure.ac index 73f53cb..4673911 100644 --- a/configure.ac +++ b/configure.ac @@ -617,6 +617,11 @@ then fi AM_CONDITIONAL(ENABLE_STATIC_MODULE, test "x${enable_static_module_is}" = "xyes") + +dnl ===== conditionals - ENABLE_STATIC and ENABLE_SHARED ===== +AM_CONDITIONAL(ENABLE_STATIC, test "x${enable_static_is}" = "xyes") +AM_CONDITIONAL(ENABLE_SHARED, test "x${enable_shared_is}" = "xyes") + dnl ===== enable-libltdl ===== AC_ARG_ENABLE([libltdl], [AS_HELP_STRING([--enable-libltdl],[use libltdl(default. no)])], diff --git a/main.go b/main.go index b1d8f4b..a729820 100644 --- a/main.go +++ b/main.go @@ -81,8 +81,10 @@ func handle_arguments(param *Param) error { return fmt.Errorf("command line error - %s", err.Error()) } - if fs.NArg() != 1 { - return fmt.Errorf("no input file or too many input files specified") + if fs.NArg() < 1 { + return fmt.Errorf("no input file specified") + } else if fs.NArg() > 1 { + return fmt.Errorf("too many input files specified") } param.input_file = fs.Arg(0);