Hello again,

there are unfortunate Gnu-isms in "doc/Makefile.am", "lib/Makefile.am",
and "src/Makefile.am". The problem lies in the use of $^ and $<, which
are not universal. Resolving these references allows BSD make to build
the source as build-inside-source, at least on FreeBSD and NetBSD.

I have also added some first few findings that approach an out-of-dir
build setup using BSD make, catching som missing $(srcdir) references.
Most importantly, the use of "$(srcdir)/gdoc" which affects also a
GNU/Linux system.

There remain some further work on full out-of-tree building, but the
present modifications are readily assembled.

Best regards,

  Mats Erik Andersson
>From 56463f76e61dc160c5027d75c0c750d4a1cb97b3 Mon Sep 17 00:00:00 2001
From: Mats Erik Andersson <g...@gisladisker.se>
Date: Wed, 22 Aug 2012 21:46:45 +0200
Subject: [PATCH 2/2] Portability issues for BSD make.

---
 doc/Makefile.am |   12 ++++++------
 lib/Makefile.am |    2 +-
 src/Makefile.am |   20 ++++++++++----------
 3 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/doc/Makefile.am b/doc/Makefile.am
index 241019a..f89d82d 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -26,7 +26,7 @@ endif
 EXTRA_DIST = gdoc gdoc-error shishi.html shishi.pdf shishi.ps components.dia
 
 components.png: components.dia
-	$(DIA) --export=$@ --filter=png $<
+	$(DIA) --export=$@ --filter=png components.dia
 
 info_TEXINFOS = shishi.texi
 shishi_TEXINFOS = fdl-1.3.texi $(gdoc_TEXINFOS) \
@@ -71,7 +71,7 @@ ccache2shishi.1: $(top_srcdir)/src/ccache2shishi.c \
 		--output=$@ $(top_builddir)/src/ccache2shishi$(EXEEXT)
 
 shishi-api-error-labels.texi: $(top_srcdir)/lib/error.c
-	$(PERL) $(srcdir)/gdoc-error $^ > $@
+	$(PERL) $(srcdir)/gdoc-error $(top_srcdir)/lib/error.c > $@
 
 gdoc_MANS =
 gdoc_MANS += man/shishi_ap.3
@@ -823,7 +823,7 @@ update-makefile:
 		BASE=`basename $$i`; \
 		TEXINFOS="$$TEXINFOS\ngdoc_TEXINFOS += texi/$$BASE.texi"; \
 	done; \
-	FUNCS=`./gdoc -listfunc $(GDOC_SRC)`; \
+	FUNCS=`$(srcdir)/gdoc -listfunc $(GDOC_SRC)`; \
 	for i in $$FUNCS; do \
 		MANS="$$MANS\ngdoc_MANS += man/$$i.3"; \
 	done; \
@@ -836,8 +836,8 @@ update-makefile:
 doit:
 	@$(mkdir_p) man texi; \
 	echo -n "Creating function documentation" && \
-	for i in `./gdoc -listfunc $(GDOC_SRC)`; do \
-		./gdoc -man \
+	for i in `$(srcdir)/gdoc -listfunc $(GDOC_SRC)`; do \
+		$(srcdir)/gdoc -man \
 			-module $(PACKAGE) -sourceversion $(VERSION) \
 			-bugsto $(PACKAGE_BUGREPORT) \
 			-includefuncprefix \
@@ -851,7 +851,7 @@ doit:
 	echo -n "Creating file documentation" && \
 	for i in $(GDOC_SRC); do \
 		BASE=`basename $$i`; \
-		./gdoc -texinfo $$i >> texi/$$BASE.texi && \
+		$(srcdir)/gdoc -texinfo $$i >> texi/$$BASE.texi && \
 		echo -n "."; \
 	done; \
 	echo ""
diff --git a/lib/Makefile.am b/lib/Makefile.am
index b94c21b..f487d4d 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -100,4 +100,4 @@ DISTCLEANFILES += $(defexec_DATA)
 endif
 
 kerberos5.c: $(srcdir)/kerberos5.asn1
-	-@ASN1PARSER@ -o $@ -n shishi_asn1_tab $^
+	-@ASN1PARSER@ -o $@ -n shishi_asn1_tab $(srcdir)/kerberos5.asn1
diff --git a/src/Makefile.am b/src/Makefile.am
index dcb3f38..1b378d8 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -52,10 +52,10 @@ noinst_LTLIBRARIES += libcmd-shishi.la
 libcmd_shishi_la_CFLAGS =
 libcmd_shishi_la_LIBADD = gl/libgnu.la
 libcmd_shishi_la_SOURCES = shishi.ggo shishi_cmd.h shishi_cmd.c
-shishi_cmd.c shishi_cmd.h: shishi.ggo Makefile.am
+shishi_cmd.c shishi_cmd.h: $(srcdir)/shishi.ggo Makefile.am
 	gengetopt --unamed-opts="CLIENT [SERVER]"			\
 		--no-handle-help --no-handle-error --no-handle-version	\
-		--input $< --file-name shishi_cmd
+		--input $(srcdir)/shishi.ggo --file-name shishi_cmd
 
 shisa_SOURCES = shisa.c
 shisa_LDADD = ../gl/libgnu.la gl/libgnu.la libcmd-shisa.la		\
@@ -64,10 +64,10 @@ noinst_LTLIBRARIES += libcmd-shisa.la
 libcmd_shisa_la_CFLAGS =
 libcmd_shisa_la_LIBADD = gl/libgnu.la
 libcmd_shisa_la_SOURCES = shisa.ggo shisa_cmd.h shisa_cmd.c
-shisa_cmd.c shisa_cmd.h: shisa.ggo Makefile.am
+shisa_cmd.c shisa_cmd.h: $(srcdir)/shisa.ggo Makefile.am
 	gengetopt --unamed-opts="REALM [PRINCIPAL]"			\
 		--no-handle-help --no-handle-error --no-handle-version	\
-		--input $< --file-name shisa_cmd
+		--input $(srcdir)/shisa.ggo --file-name shisa_cmd
 
 shishid_SOURCES = shishid.c server.c kdc.h kdc.c
 if STARTTLS
@@ -79,10 +79,10 @@ noinst_LTLIBRARIES += libcmd-shishid.la
 libcmd_shishid_la_CFLAGS =
 libcmd_shishid_la_LIBADD = gl/libgnu.la
 libcmd_shishid_la_SOURCES = shishid.ggo shishid_cmd.h shishid_cmd.c
-shishid_cmd.c shishid_cmd.h: shishid.ggo Makefile.am
+shishid_cmd.c shishid_cmd.h: $(srcdir)/shishid.ggo Makefile.am
 	gengetopt							\
 		--no-handle-help --no-handle-error --no-handle-version	\
-		--input $< --file-name shishid_cmd
+		--input $(srcdir)/shishid.ggo --file-name shishid_cmd
 
 keytab2shishi_SOURCES = keytab2shishi.c
 keytab2shishi_LDADD = ../gl/libgnu.la gl/libgnu.la libcmd-keytab2shishi.la \
@@ -92,10 +92,10 @@ libcmd_keytab2shishi_la_CFLAGS =
 libcmd_keytab2shishi_la_LIBADD = gl/libgnu.la
 libcmd_keytab2shishi_la_SOURCES =  keytab2shishi.ggo			\
 	keytab2shishi_cmd.h keytab2shishi_cmd.c
-keytab2shishi_cmd.c keytab2shishi_cmd.h: keytab2shishi.ggo Makefile.am
+keytab2shishi_cmd.c keytab2shishi_cmd.h: $(srcdir)/keytab2shishi.ggo Makefile.am
 	gengetopt --unamed-opts="INFILE [OUTFILE]"			\
 		--no-handle-help --no-handle-error			\
-		--input $< --file-name keytab2shishi_cmd
+		--input $(srcdir)/keytab2shishi.ggo --file-name keytab2shishi_cmd
 
 ccache2shishi_SOURCES = ccache2shishi.c
 ccache2shishi_LDADD = ../gl/libgnu.la gl/libgnu.la libcmd-ccache2shishi.la \
@@ -105,7 +105,7 @@ libcmd_ccache2shishi_la_CFLAGS =
 libcmd_ccache2shishi_la_LIBADD = gl/libgnu.la
 libcmd_ccache2shishi_la_SOURCES = ccache2shishi.ggo			\
 	ccache2shishi_cmd.h ccache2shishi_cmd.c
-ccache2shishi_cmd.c ccache2shishi_cmd.h: ccache2shishi.ggo Makefile.am
+ccache2shishi_cmd.c ccache2shishi_cmd.h: $(srcdir)/ccache2shishi.ggo Makefile.am
 	gengetopt --unamed-opts="INFILE [OUTFILE]"			\
 		--no-handle-help --no-handle-error			\
-		--input $< --file-name ccache2shishi_cmd
+		--input $(srcdir)/ccache2shishi.ggo --file-name ccache2shishi_cmd
-- 
1.7.2.5

_______________________________________________
Help-shishi mailing list
Help-shishi@gnu.org
https://lists.gnu.org/mailman/listinfo/help-shishi

Reply via email to