# # %CopyrightBegin% # # Copyright Ericsson AB 1999-2009. All Rights Reserved. # # The contents of this file are subject to the Erlang Public License, # Version 1.1, (the "License"); you may not use this file except in # compliance with the License. You should have received a copy of the # Erlang Public License along with this software. If not, it can be # retrieved online at http://www.erlang.org/. # # Software distributed under the License is distributed on an "AS IS" # basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See # the License for the specific language governing rights and limitations # under the License. # # %CopyrightEnd% # include $(ERL_TOP)/make/target.mk include $(ERL_TOP)/make/$(TARGET)/otp.mk include $(ERL_TOP)/make/$(TARGET)/otp_ded.mk # ---------------------------------------------------- # Application version # ---------------------------------------------------- include ../vsn.mk VSN=$(CRYPTO_VSN) # ---------------------------------------------------- # The following variables differ between systems. # Set by configure. # ---------------------------------------------------- CC = $(DED_CC) LD = $(DED_LD) SHELL = /bin/sh LIBS = $(DED_LIBS) LDFLAGS += $(DED_LDFLAGS) CFLAGS = $(DED_CFLAGS) # From erts/configure SSL_LIBDIR = @SSL_LIBDIR@ SSL_INCLUDE = @SSL_INCLUDE@ INCLUDES = $(SSL_INCLUDE) $(DED_INCLUDES) ifeq ($(TYPE),debug) TYPEMARKER = .debug TYPE_FLAGS = $(subst -O3,,$(subst -O2,,$(CFLAGS))) -DDEBUG else ifeq ($(TYPE),valgrind) TYPEMARKER = .valgrind TYPE_FLAGS = $(subst -O3,,$(subst -O2,,$(CFLAGS))) -DVALGRIND else TYPEMARKER = TYPE_FLAGS = $(CFLAGS) endif endif ALL_CFLAGS = $(TYPE_FLAGS) $(INCLUDES) # ---------------------------------------------------- # Release directory specification # ---------------------------------------------------- RELSYSDIR = $(RELEASE_PATH)/lib/crypto-$(VSN) # ---------------------------------------------------- # Misc Macros # ---------------------------------------------------- OBJS = $(OBJDIR)/crypto_drv.o DRV_MAKEFILE = $(PRIVDIR)/Makefile ifeq ($(findstring win32,$(TARGET)), win32) DYN_DRIVER = $(LIBDIR)/crypto_drv.dll else DYN_DRIVER = $(LIBDIR)/crypto_drv.so endif ifeq ($(HOST_OS),) HOST_OS := $(shell $(ERL_TOP)/erts/autoconf/config.guess) endif DYNAMIC_CRYPTO_LIB=@SSL_DYNAMIC_ONLY@ LD_R_FLAG=@DED_LD_FLAG_RUNTIME_LIBRARY_PATH@ ifeq ($(strip $(LD_R_FLAG)),) LD_R_OPT = else ifeq ($(DYNAMIC_CRYPTO_LIB),yes) LD_R_OPT = $(LD_R_FLAG)$(SSL_LIBDIR) else LD_R_OPT = endif endif ifeq ($(DYNAMIC_CRYPTO_LIB),yes) CRYPTO_LINK_LIB=-L$(SSL_LIBDIR) -lcrypto else CRYPTO_LINK_LIB=$(SSL_LIBDIR)/libcrypto.a endif # ---------------------------------------------------- # Targets # ---------------------------------------------------- debug opt valgrind: $(OBJDIR) $(LIBDIR) $(DYN_DRIVER) $(OBJDIR): -@mkdir -p $(OBJDIR) $(LIBDIR): -@mkdir -p $(LIBDIR) $(OBJDIR)/%.o: %.c $(INSTALL_DIR) $(OBJDIR) $(CC) -c -o $@ $(ALL_CFLAGS) $< $(LIBDIR)/crypto_drv.so: $(OBJS) $(INSTALL_DIR) $(LIBDIR) $(LD) $(LDFLAGS) $(LD_R_OPT) -o $@ $^ $(LDLIBS) $(CRYPTO_LINK_LIB) $(LIBDIR)/crypto_drv.dll: $(OBJS) $(INSTALL_DIR) $(LIBDIR) $(LD) $(LDFLAGS) -o $@ -L$(SSL_LIBDIR) $(OBJS) -llibeay32 clean: rm -f $(DYN_DRIVER) $(OBJS) rm -f core *~ docs: # ---------------------------------------------------- # Release Target # ---------------------------------------------------- include $(ERL_TOP)/make/otp_release_targets.mk release_spec: opt $(INSTALL_DIR) $(RELSYSDIR)/priv/obj $(INSTALL_DIR) $(RELSYSDIR)/priv/lib $(INSTALL_PROGRAM) $(DRV_MAKEFILE) $(RELSYSDIR)/priv/obj $(INSTALL_PROGRAM) $(OBJS) $(RELSYSDIR)/priv/obj $(INSTALL_PROGRAM) $(DYN_DRIVER) $(RELSYSDIR)/priv/lib release_docs_spec: