3 include Makefile.release
5 # Smash together user's values with our extra values
6 FINAL_FIPS_CFLAGS = -DFIPS_VERSION=$(VERSION) $(CFLAGS) $(FIPS_CFLAGS) $(extra_cflags)
7 FINAL_FIPS_LDFLAGS = $(LDFLAGS) $(AS_NEEDED_LDFLAGS) $(FIPS_LDFLAGS)
9 FINAL_LIBFIPS_CFLAGS = $(CFLAGS) $(LIBFIPS_CFLAGS) $(extra_cflags)
10 FINAL_LIBFIPS_LDFLAGS = $(LDFLAGS) $(LIBFIPS_LDFLAGS) -ldl
12 FINAL_FIPS_LINKER = CC
16 ifeq ($(COMPILER_SUPPORTS_32),Yes)
17 ALL_TARGETS += libfips-32.so
20 ifeq ($(COMPILER_SUPPORTS_64),Yes)
21 ALL_TARGETS += libfips-64.so
27 ifeq ($(MAKECMDGOALS),)
28 ifeq ($(shell cat .first-build-message 2>/dev/null),)
29 @FIPS_FIRST_BUILD=1 $(MAKE) --no-print-directory all
31 @echo "Compilation of fips is now complete. You can install fips with:"
35 @echo "Note that depending on the prefix to which you are installing"
36 @echo "you may need root permission (such as \"sudo make install\")."
37 @echo "See \"./configure --help\" for help on setting an alternate prefix."
38 @echo Printed > .first-build-message
44 @echo "FIXME: Should consider adding a test suite here."
46 # The user has not set any verbosity, default to quiet mode and inform the
47 # user how to enable verbose compiles.
49 quiet_DOC := "Use \"$(MAKE) V=1\" to see the verbose compile lines.\n"
50 quiet = @printf $(quiet_DOC)$(eval quiet_DOC:=)"$1 $@\n"; $($(shell echo $1 | sed -e s'/ .*//'))
52 # The user has explicitly enabled quiet compilation.
54 quiet = @printf "$1 $@\n"; $($(shell echo $1 | sed -e s'/ .*//'))
56 # Otherwise, print the full command line.
57 quiet ?= $($(shell echo $1 | sed -e s'/ .*//'))
59 %-32.o: %.c $(global_deps)
61 $(call quiet,CC $(CFLAGS) -m32) -c $(FINAL_LIBFIPS_CFLAGS) -m32 $< -o $@ -MD -MP -MF .deps/$*.d
63 %-64.o: %.c $(global_deps)
65 $(call quiet,CC $(CFLAGS) -m64) -c $(FINAL_LIBFIPS_CFLAGS) -m64 $< -o $@ -MD -MP -MF .deps/$*.d
67 %.o: %.c $(global_deps)
69 $(call quiet,CC $(CFLAGS)) -c $(FINAL_FIPS_CFLAGS) $< -o $@ -MD -MP -MF .deps/$*.d
73 rm -rf $(CLEAN); rm -rf .deps
85 fips_modules = $(fips_srcs:.c=.o)
88 $(call quiet,$(FINAL_FIPS_LINKER) $(CFLAGS)) $(FINAL_FIPS_CFLAGS) $^ $(FINAL_FIPS_LDFLAGS) -o $@
90 # GL-wrapper library, libfips
91 LIBRARY_LINK_FLAGS = -shared -Wl,--version-script=libfips.sym
93 extra_cflags += -I$(srcdir) -fPIC
101 ifeq ($(HAVE_EGL),Yes)
102 libfips_srcs += eglwrap.c
105 libfips.sym: extract-wrapped-symbols $(libfips_srcs)
106 $(call quiet,extract-wrapped-symbols) ./extract-wrapped-symbols $(libfips_srcs) > $@
108 libfips_32_modules = $(libfips_srcs:.c=-32.o)
110 libfips_64_modules = $(libfips_srcs:.c=-64.o)
112 libfips-32.so: $(libfips_32_modules) libfips.sym
113 $(call quiet,$(FINAL_FIPS_LINKER) $(CFLAGS) -m32) -o $@ $(FINAL_LIBFIPS_CFLAGS) -m32 $(libfips_32_modules) $(LIBRARY_LINK_FLAGS) $(FINAL_LIBFIPS_LDFLAGS)
115 libfips-64.so: $(libfips_64_modules) libfips.sym
116 $(call quiet,$(FINAL_FIPS_LINKER) $(CFLAGS) -m64) -o $@ $(FINAL_LIBFIPS_CFLAGS) -m64 $(libfips_64_modules) $(LIBRARY_LINK_FLAGS) $(FINAL_LIBFIPS_LDFLAGS)
120 mkdir -p $(DESTDIR)$(bindir)
121 install fips $(DESTDIR)$(bindir)/fips
122 mkdir -p $(DESTDIR)$(libdir)/fips
123 install -m0644 libfips-32.so $(DESTDIR)$(libdir)/fips/libfips-32.so
124 install -m0644 libfips-64.so $(DESTDIR)$(libdir)/fips/libfips-64.so
125 ifeq ($(MAKECMDGOALS), install)
127 @echo "Fips is now installed to $(DESTDIR)$(prefix)"
131 SRCS := $(SRCS) $(fips_srcs) $(libfips_srcs)
132 CLEAN := $(CLEAN) fips $(fips_modules) $(libfips_32_modules) $(libfips_64_modules) libfips.sym
134 DISTCLEAN := $(DISTCLEAN) .first-build-message Makefile.config
136 DEPS := $(SRCS:%.c=.deps/%.d)
137 DEPS := $(DEPS:%.cc=.deps/%.d)