X-Git-Url: https://git.draconx.ca/gitweb/dxcommon.git/blobdiff_plain/4d4e441e6d6dd231a00921765ba0d4ef00d209d9..e7d29006d05055ab5b7af44078668c1915d35262:/snippet/glconfig.mk diff --git a/snippet/glconfig.mk b/snippet/glconfig.mk index b72f1b0..b7ed4cc 100644 --- a/snippet/glconfig.mk +++ b/snippet/glconfig.mk @@ -1,12 +1,13 @@ -# Copyright © 2011 Nick Bowler +# Copyright © 2011-2013, 2019, 2021-2022 Nick Bowler # # Automake fragment to generate a Gnulib config header to rewrite exported -# symbols. This fragment relies on the Gnulib makefile enhancements done by -# fix-gnulib.pl. Furthermore, the following additional changes may be +# symbols. This fragment relies on the Gnulib makefile postprocessing done by +# fix-gnulib.pl. Furthermore, the following additions to configure.ac may be # required: # # * Add AM_PROC_CC_C_O to configure.ac -# * Pass the desired symbol prefix to DX_FIX_GNULIB in configure.ac. +# * Pass the desired symbol prefix to DX_GLSYM_PREFIX in configure.ac, +# after including the fix-gnulib.pl output. # # License WTFPL2: Do What The Fuck You Want To Public License, version 2. # This is free software: you are free to do what the fuck you want to. @@ -15,12 +16,11 @@ GLCONFIG = @GLSRC@/glconfig.h GLCAT = cat /dev/null -GLSYM_V = $(GLSYM_V_$(V)) -GLSYM_V_ = $(GLSYM_V_$(AM_DEFAULT_VERBOSITY)) -GLSYM_V_0 = @echo " GLSYM " $<; +GLSYM_V = $(GLSYM_V_@AM_V@) +GLSYM_V_ = $(GLSYM_V_@AM_DEFAULT_V@) +GLSYM_V_0 = @printf ' %$(DX_ALIGN_V)s %s\n' 'GLSYM ' $<; -gnulib_symfiles = $(gnulib_lt_objects:.lo=.glsym) -gnulib_src_headers += $(GLCONFIG) +gnulib_headers += $(GLCONFIG) # This suffix rule triggers symbol generation only on demand. Dependencies are # not tracked directly, so it must remain phony and thus not create the target. @@ -44,6 +44,15 @@ clean-glconfig: done .PHONY: clean-glconfig +# Produce the list of all currently-enabled gnulib object files to assist with +# external build helpers. +GLCONFIG_OBJECTS = &1 +glconfig-objects: + @:; { \ + for f in $(gnulib_objects); do echo "$$f"; done; \ + } >$(GLCONFIG_OBJECTS) +.PHONY: glconfig-objects + # The config header requires compilation of all gnulib object files via the # .glsym rule above. However, it cannot depend on those build products # directly because they are phony, and would make this header never up-to-date. @@ -77,4 +86,13 @@ glconfig-gen: $(gnulib_symfiles) > $(GLCONFIG).tmp .PHONY: glconfig-gen -@AMDEP_TRUE@@am__include@ @am__quote@@GLSRC@/$(DEPDIR)/glconfig.Ph@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@@GLSRC@/$(DEPDIR)/glconfig.Ph@am__quote@@dx_include_marker@ + +# Automake 1.16 and newer use make rules to generate the dependency stubs. +# we must hook those which is kind of annoying to do. This should be harmless +# on previous versions which generate the stubs directly in config.status. +@dx_depfiles_target@: @GLSRC@/$(DEPDIR)/glconfig.Ph +@GLSRC@/$(DEPDIR)/glconfig.Ph: + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && mv -f $@-t $@ +DISTCLEANFILES += @GLSRC@/$(DEPDIR)/glconfig.Ph