2 # Makefile for MatrixSSL library
3 # Builds optimized shared library by default.
4 # See comments below for building a debug library.
5 # Copyright (c) PeerSec Networks, 2002-2009. All Rights Reserved.
8 CC
= $(CROSS_COMPILE
)gcc
9 STRIP
= $(CROSS_COMPILE
)strip
10 AR
= $(CROSS_COMPILE
)ar
11 RANLIB
= $(CROSS_COMPILE
)ranlib
17 LIBRARY
= libmatrixssl
$(SO
)
18 STATIC
= libmatrixsslstatic
$(A
)
28 crypto
/peersec
/arc4
$(O
) \
29 crypto
/peersec
/base64
$(O
) \
30 crypto
/peersec
/des3
$(O
) \
31 crypto
/peersec
/md5
$(O
) \
32 crypto
/peersec
/md2
$(O
) \
33 crypto
/peersec
/mpi
$(O
) \
34 crypto
/peersec
/rsa
$(O
) \
35 crypto
/peersec
/sha1
$(O
) \
41 # Debug flags (Define MATRIXSSL_DEBUG in shell to build debug)
42 # bash: export MATRIXSSL_DEBUG=1
43 # unset MATRIXSSL_DEBUG
44 # tcsh: setenv MATRIXSSL_DEBUG 1
45 # unsetenv MATRIXSSL_DEBUG
49 DFLAGS
= -g
-Wall
-Winline
-Wdisabled-optimization
-Wno-pointer-sign
-Wno-sign-compare
-DDEBUG
56 ifdef MATRIXSSL_PROFILE
62 # Override variables for compilation on x86-64 (AMD64, Nacona, etc)
64 # ifeq ($(shell uname -m),x86_64)
65 # DFLAGS += -march=k8 -fPIC -DFP_64BIT -DTFM_X86_64 -DRDTSC
72 CFLAGS
= $(DFLAGS
) -fPIC
-DLINUX
-I.
/
73 # Add these for MPI2 -funroll-all-loops -fomit-frame-pointer
74 LDFLAGS
+= -lc
-lpthread
77 # Override variables for compilation on Mac OS X (Darwin)
79 ifeq ($(shell uname
),Darwin
)
83 CFLAGS
+= -DOSX
-isystem
-I
/usr
/include
84 #LDFLAGS += -install_name @rpath/$(LIBRARY)
85 LDFLAGS
+= -flat_namespace
-install_name @executable_path
/.
/$(LIBRARY
)
90 # Override variables for compilation on uClinux (example only)
93 CC
= /opt
/brcm
/hndtools-mipsel-uclibc
/bin
/mipsel-uclibc-gcc
94 STRIP
= /opt
/brcm
/hndtools-mipsel-uclibc
/bin
/mipsel-uclibc-strip
99 compile
: $(OBJECTS
) $(LIBRARY
) $(STATIC
)
102 # Manual dependencies
104 *.o
: ..
/matrixSsl.h ..
/matrixCommon.h matrixInternal.h matrixConfig.h Makefile
105 os
/*.o
: matrixInternal.h matrixConfig.h Makefile os
/osLayer.h os
/psMalloc.h
106 os
/linux
/*.o
: matrixInternal.h matrixConfig.h Makefile os
/osLayer.h
107 crypto
/peersec
/*.o
: matrixInternal.h matrixConfig.h Makefile \
108 crypto
/peersec
/mpi.h \
109 crypto
/cryptoLayer.h crypto
/peersec
/pscrypto.h
110 pki
/*.o
: matrixInternal.h matrixConfig.h Makefile \
111 pki
/matrixPki.h pki
/pkiInternal.h
115 $(LIBRARY
): $(OBJECTS
)
116 $(CC
) $(SHARED
) -o
$@
$^
$(LDFLAGS
)
120 # Build the static library
122 $(STATIC
): $(OBJECTS
)
127 # Clean up all generated files
130 rm -f
$(LIBRARY
) $(OBJECTS
) $(STATIC
)