xref: /freebsd/crypto/libecc/src/examples/sss/Makefile (revision f0865ec9906d5a18fa2a3b61381f22ce16e606ad)
1*f0865ec9SKyle EvansROOT_DIR=../../..
2*f0865ec9SKyle EvansBUILD_DIR=$(ROOT_DIR)/build
3*f0865ec9SKyle Evansinclude $(ROOT_DIR)/common.mk
4*f0865ec9SKyle Evans
5*f0865ec9SKyle Evans# Remove old includes with bad relative folders
6*f0865ec9SKyle EvansCFLAGS := $(patsubst -I%,,$(CFLAGS))
7*f0865ec9SKyle Evans# Add proper includes
8*f0865ec9SKyle EvansCFLAGS += -I$(ROOT_DIR)/include/
9*f0865ec9SKyle Evans
10*f0865ec9SKyle EvansKEEP_SYMBOLS=--keep-global-symbol=sss_generate --keep-global-symbol=sss_combine --keep-global-symbol=sss_regenerate
11*f0865ec9SKyle Evans
12*f0865ec9SKyle Evansall:	sss
13*f0865ec9SKyle Evansifeq ($(WITH_DYNAMIC_LIBS),1)
14*f0865ec9SKyle Evans# If the user asked for dynamic libraries, compile versions of our binaries against them
15*f0865ec9SKyle Evansall:	sss_dyn
16*f0865ec9SKyle Evansendif
17*f0865ec9SKyle Evans
18*f0865ec9SKyle Evanssss:
19*f0865ec9SKyle Evans	$(VERBOSE_MAKE)$(CROSS_COMPILE)$(CC) $(BIN_CFLAGS) -DSSS sss.c $(ROOT_DIR)/src/external_deps/print.c $(ROOT_DIR)/src/external_deps/rand.c $(BIN_LDFLAGS) $(LIBSIGN) -o sss
20*f0865ec9SKyle Evans
21*f0865ec9SKyle Evanssss_lib:
22*f0865ec9SKyle Evans	# Compile libsss archive
23*f0865ec9SKyle Evans	$(VERBOSE_MAKE)$(CROSS_COMPILE)$(CC) $(LIB_CFLAGS) -c sss.c $(ROOT_DIR)/src/external_deps/print.c $(ROOT_DIR)/src/external_deps/rand.c
24*f0865ec9SKyle Evans	$(VERBOSE_MAKE)cp $(LIBSIGN) ./
25*f0865ec9SKyle Evans	$(VERBOSE_MAKE)$(CROSS_COMPILE)$(AR) xv libsign.a
26*f0865ec9SKyle Evans	# Make unnecessary symbols local
27*f0865ec9SKyle Evans	$(VERBOSE_MAKE)for f in `ls *.o`; do objcopy $(KEEP_SYMBOLS) $$f && echo "Processing $$f"; done
28*f0865ec9SKyle Evans	# Combine the archives
29*f0865ec9SKyle Evans	$(VERBOSE_MAKE)$(CROSS_COMPILE)$(AR) $(AR_FLAGS) libsss.a *.o
30*f0865ec9SKyle Evans	@rm -f *.o libsign.a
31*f0865ec9SKyle Evans
32*f0865ec9SKyle Evans# If the user asked for dynamic libraries, compile versions of our binaries against them
33*f0865ec9SKyle Evansifeq ($(WITH_DYNAMIC_LIBS),1)
34*f0865ec9SKyle Evanssss_dyn:
35*f0865ec9SKyle Evans	$(VERBOSE_MAKE)$(CROSS_COMPILE)$(CC) $(BIN_CFLAGS) -DSSS sss.c $(ROOT_DIR)/src/external_deps/print.c $(ROOT_DIR)/src/external_deps/rand.c $(BIN_LDFLAGS) $(LIBSIGN) -L$(BUILD_DIR) -lsign -o sss_dyn
36*f0865ec9SKyle Evansendif
37*f0865ec9SKyle Evans
38*f0865ec9SKyle Evans
39*f0865ec9SKyle Evansclean:
40*f0865ec9SKyle Evans	@rm -f *.o
41*f0865ec9SKyle Evans	@rm -f sss
42*f0865ec9SKyle Evans	@rm -f sss_dyn
43*f0865ec9SKyle Evans
44*f0865ec9SKyle Evans.PHONY: all clean 16 32 64 debug debug16 debug32 debug64 force_arch32 force_arch64
45