X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=Makefile.local;h=179700ee8da9bceff4062acdf93eb00fc4ba7a6f;hb=ca92cd15c67e52a9ed2d390f946b750e777b47d7;hp=1287f49ce3b2e252dbe60763b2a0d0f2c0f58922;hpb=1f4014b53a4dc77768f3998a6fd3b67024431fa3;p=fips diff --git a/Makefile.local b/Makefile.local index 1287f49..179700e 100644 --- a/Makefile.local +++ b/Makefile.local @@ -4,15 +4,22 @@ include Makefile.release # Smash together user's values with our extra values FINAL_CFLAGS = -DFIPS_VERSION=$(VERSION) $(CFLAGS) $(WARN_CFLAGS) $(CONFIGURE_CFLAGS) $(extra_cflags) -FINAL_FIPS_LDFLAGS = $(LDFLAGS) $(AS_NEEDED_LDFLAGS) $(TALLOC_LDFLAGS) -FINAL_LIBFIPS_LDFLAGS = $(LDFLAGS) -ldl +FINAL_FIPS_LDFLAGS = $(LDFLAGS) $(AS_NEEDED_LDFLAGS) $(CONFIGURE_LDFLAGS) +FINAL_LIBFIPS_LDFLAGS = $(LDFLAGS) $(CONFIGURE_LDFLAGS) -ldl FINAL_FIPS_LINKER = CC -ifneq ($(LINKER_RESOLVES_LIBRARY_DEPENDENCIES),1) -FINAL_FIPS_LDFLAGS += $(CONFIGURE_LDFLAGS) + +ALL_TARGETS = fips + +ifeq ($(COMPILER_SUPPORTS_32),Yes) +ALL_TARGETS += libfips-32.so +endif + +ifeq ($(COMPILER_SUPPORTS_64),Yes) +ALL_TARGETS += libfips-64.so endif .PHONY: all -all: fips libfips.so +all: $(ALL_TARGETS) ifeq ($(MAKECMDGOALS),) ifeq ($(shell cat .first-build-message 2>/dev/null),) @@ -46,6 +53,14 @@ endif # Otherwise, print the full command line. quiet ?= $($(shell echo $1 | sed -e s'/ .*//')) +%-32.o: %.c $(global_deps) + @mkdir -p .deps/$(@D) + $(call quiet,CC $(CFLAGS) -m32) -c $(FINAL_CFLAGS) -m32 $< -o $@ -MD -MP -MF .deps/$*.d + +%-64.o: %.c $(global_deps) + @mkdir -p .deps/$(@D) + $(call quiet,CC $(CFLAGS) -m64) -c $(FINAL_CFLAGS) -m64 $< -o $@ -MD -MP -MF .deps/$*.d + %.o: %.c $(global_deps) @mkdir -p .deps/$(@D) $(call quiet,CC $(CFLAGS)) -c $(FINAL_CFLAGS) $< -o $@ -MD -MP -MF .deps/$*.d @@ -70,24 +85,40 @@ fips: $(fips_modules) $(call quiet,$(FINAL_FIPS_LINKER) $(CFLAGS)) $(FINAL_CFLAGS) $^ $(FINAL_FIPS_LDFLAGS) -o $@ # GL-wrapper library, libfips -LIBRARY_LINK_FLAGS = -shared -Wl,--version-script=libfips.sym,--no-undefined +LIBRARY_LINK_FLAGS = -shared -Wl,--version-script=libfips.sym extra_cflags += -I$(srcdir) -fPIC libfips_srcs = \ - glxwrap.c + dlwrap.c \ + glwrap.c \ + glxwrap.c \ + metrics.c + +ifeq ($(HAVE_EGL),Yes) +libfips_srcs += eglwrap.c +endif + +libfips.sym: extract-wrapped-symbols $(libfips_srcs) + $(call quiet,extract-wrapped-symbols) ./extract-wrapped-symbols $(libfips_srcs) > $@ + +libfips_32_modules = $(libfips_srcs:.c=-32.o) + +libfips_64_modules = $(libfips_srcs:.c=-64.o) -libfips_modules = $(libfips_srcs:.c=.o) +libfips-32.so: $(libfips_32_modules) libfips.sym + $(call quiet,$(FINAL_FIPS_LINKER) $(CFLAGS) -m32) -o $@ $(FINAL_CFLAGS) -m32 $(libfips_32_modules) $(LIBRARY_LINK_FLAGS) $(FINAL_LIBFIPS_LDFLAGS) -libfips.so: $(libfips_modules) libfips.sym - $(call quiet,$(FINAL_FIPS_LINKER) $(CFLAGS)) $(FINAL_CFLAGS) $(libfips_modules) $(FINAL_LIBFIPS_LDFLAGS) $(LIBRARY_LINK_FLAGS) -o $@ +libfips-64.so: $(libfips_64_modules) libfips.sym + $(call quiet,$(FINAL_FIPS_LINKER) $(CFLAGS) -m64) -o $@ $(FINAL_CFLAGS) -m64 $(libfips_64_modules) $(LIBRARY_LINK_FLAGS) $(FINAL_LIBFIPS_LDFLAGS) .PHONY: install install: all mkdir -p $(DESTDIR)$(bindir) install fips $(DESTDIR)$(bindir)/fips mkdir -p $(DESTDIR)$(libdir)/fips - install -m0644 libfips.so $(DESTDIR)$(libdir)/fips/libfips.so + install -m0644 libfips-32.so $(DESTDIR)$(libdir)/fips/libfips-32.so + install -m0644 libfips-64.so $(DESTDIR)$(libdir)/fips/libfips-64.so ifeq ($(MAKECMDGOALS), install) @echo "" @echo "Fips is now installed to $(DESTDIR)$(prefix)" @@ -95,7 +126,7 @@ ifeq ($(MAKECMDGOALS), install) endif SRCS := $(SRCS) $(fips_srcs) $(libfips_srcs) -CLEAN := $(CLEAN) fips $(fips_modules) $(libfips_modules) +CLEAN := $(CLEAN) fips $(fips_modules) $(libfips_32_modules) $(libfips_64_modules) libfips.sym DISTCLEAN := $(DISTCLEAN) .first-build-message Makefile.config