186 lines
5.7 KiB
Makefile
186 lines
5.7 KiB
Makefile
#
|
|
# Copyright (c) 2007, Cameron Rich
|
|
#
|
|
# All rights reserved.
|
|
#
|
|
# Redistribution and use in source and binary forms, with or without
|
|
# modification, are permitted provided that the following conditions are met:
|
|
#
|
|
# * Redistributions of source code must retain the above copyright notice,
|
|
# this list of conditions and the following disclaimer.
|
|
# * Redistributions in binary form must reproduce the above copyright
|
|
# notice, this list of conditions and the following disclaimer in the
|
|
# documentation and/or other materials provided with the distribution.
|
|
# * Neither the name of the axTLS project nor the names of its
|
|
# contributors may be used to endorse or promote products derived
|
|
# from this software without specific prior written permission.
|
|
#
|
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
|
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
|
# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
|
|
# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
#
|
|
|
|
-include config/.config
|
|
|
|
ifneq ($(strip $(HAVE_DOT_CONFIG)),y)
|
|
all: menuconfig
|
|
else
|
|
all: target
|
|
endif
|
|
|
|
include config/makefile.conf
|
|
|
|
target : $(STAGE) $(TARGET)
|
|
|
|
# VERSION has to come from the command line
|
|
RELEASE=axTLS-$(VERSION)
|
|
|
|
# standard version
|
|
target:
|
|
$(MAKE) -C crypto
|
|
$(MAKE) -C ssl
|
|
ifdef CONFIG_AXHTTPD
|
|
$(MAKE) -C httpd
|
|
endif
|
|
ifdef CONFIG_AXTLSWRAP
|
|
$(MAKE) -C axtlswrap
|
|
endif
|
|
ifdef CONFIG_BINDINGS
|
|
$(MAKE) -C bindings
|
|
endif
|
|
ifdef CONFIG_SAMPLES
|
|
$(MAKE) -C samples
|
|
endif
|
|
|
|
$(STAGE) : ssl/version.h
|
|
@mkdir -p $(STAGE)
|
|
|
|
# create a version file with something in it.
|
|
ssl/version.h:
|
|
@echo "#define AXTLS_VERSION \"(no version)\"" > ssl/version.h
|
|
|
|
$(PREFIX) :
|
|
@mkdir -p $(PREFIX)/lib
|
|
@mkdir -p $(PREFIX)/bin
|
|
|
|
release:
|
|
$(MAKE) -C config/scripts/config clean
|
|
-$(MAKE) clean
|
|
-@rm config/*.msi config/*.back.aip config/config.h config/.config*
|
|
-@rm www/index.20*
|
|
-@rm -fr $(STAGE)
|
|
@echo "#define AXTLS_VERSION \"$(VERSION)\"" > ssl/version.h
|
|
cd ../; tar cvfz $(RELEASE).tar.gz --wildcards-match-slash --exclude .svn axtls-code; cd -;
|
|
|
|
docs:
|
|
$(MAKE) -C docsrc doco
|
|
|
|
# build the Win32 demo release version
|
|
win32_demo:
|
|
@echo "#define AXTLS_VERSION \"$(VERSION)\"" > ssl/version.h
|
|
$(MAKE) win32releaseconf
|
|
|
|
install: $(PREFIX) all
|
|
cp --no-dereference $(STAGE)/libax* $(PREFIX)/lib
|
|
chmod 755 $(PREFIX)/lib/libax*
|
|
ifdef CONFIG_SAMPLES
|
|
install -m 755 $(STAGE)/ax* $(PREFIX)/bin
|
|
endif
|
|
ifdef CONFIG_HTTP_HAS_AUTHORIZATION
|
|
install -m 755 $(STAGE)/htpasswd $(PREFIX)/bin
|
|
endif
|
|
ifdef CONFIG_PLATFORM_CYGWIN
|
|
install -m 755 $(STAGE)/cygaxtls.dll $(PREFIX)/bin
|
|
endif
|
|
ifdef CONFIG_PERL_BINDINGS
|
|
install -m 755 $(STAGE)/axtlsp.pm `perl -e 'use Config; print $$Config{installarchlib};'`
|
|
endif
|
|
@mkdir -p -m 755 $(PREFIX)/include/axTLS
|
|
install -m 644 crypto/*.h $(PREFIX)/include/axTLS
|
|
install -m 644 ssl/*.h $(PREFIX)/include/axTLS
|
|
-rm $(PREFIX)/include/axTLS/cert.h
|
|
-rm $(PREFIX)/include/axTLS/private_key.h
|
|
-rm $(PREFIX)/include/axTLS/os_port.h
|
|
install -m 644 config/config.h $(PREFIX)/include/axTLS
|
|
|
|
installclean:
|
|
-@rm $(PREFIX)/lib/libax* > /dev/null 2>&1
|
|
-@rm $(PREFIX)/bin/ax* > /dev/null 2>&1
|
|
-@rm $(PREFIX)/bin/axhttpd* > /dev/null 2>&1
|
|
-@rm `perl -e 'use Config; print $$Config{installarchlib};'`/axtlsp.pm > /dev/null 2>&1
|
|
|
|
test:
|
|
cd $(STAGE); ssltest; ../ssl/test/test_axssl.sh; cd -;
|
|
|
|
# tidy up things
|
|
clean::
|
|
@cd crypto; $(MAKE) clean
|
|
@cd ssl; $(MAKE) clean
|
|
@cd httpd; $(MAKE) clean
|
|
@cd axtlswrap; $(MAKE) clean
|
|
@cd samples; $(MAKE) clean
|
|
@cd docsrc; $(MAKE) clean
|
|
@cd bindings; $(MAKE) clean
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# mconf stuff
|
|
# ---------------------------------------------------------------------------
|
|
|
|
CONFIG_CONFIG_IN = config/Config.in
|
|
CONFIG_DEFCONFIG = config/defconfig
|
|
|
|
config/scripts/config/conf: config/scripts/config/Makefile
|
|
$(MAKE) -C config/scripts/config conf
|
|
-@if [ ! -f config/.config ] ; then \
|
|
cp $(CONFIG_DEFCONFIG) config/.config; \
|
|
fi
|
|
|
|
config/scripts/config/mconf: config/scripts/config/Makefile
|
|
$(MAKE) -C config/scripts/config ncurses conf mconf
|
|
-@if [ ! -f config/.config ] ; then \
|
|
cp $(CONFIG_DEFCONFIG) .config; \
|
|
fi
|
|
|
|
cleanconf:
|
|
$(MAKE) -C config/scripts/config clean
|
|
@rm -f config/.config
|
|
|
|
menuconfig: config/scripts/config/mconf
|
|
@./config/scripts/config/mconf $(CONFIG_CONFIG_IN)
|
|
|
|
config: config/scripts/config/conf
|
|
@./config/scripts/config/conf $(CONFIG_CONFIG_IN)
|
|
|
|
oldconfig: config/scripts/config/conf
|
|
@./config/scripts/config/conf -o $(CONFIG_CONFIG_IN)
|
|
|
|
default: config/scripts/config/conf
|
|
@./config/scripts/config/conf -d $(CONFIG_CONFIG_IN) > /dev/null
|
|
$(MAKE)
|
|
|
|
randconfig: config/scripts/config/conf
|
|
@./config/scripts/config/conf -r $(CONFIG_CONFIG_IN)
|
|
|
|
allnoconfig: config/scripts/config/conf
|
|
@./config/scripts/config/conf -n $(CONFIG_CONFIG_IN)
|
|
|
|
allyesconfig: config/scripts/config/conf
|
|
@./config/scripts/config/conf -y $(CONFIG_CONFIG_IN)
|
|
|
|
# The special win32 release configuration
|
|
win32releaseconf: config/scripts/config/conf
|
|
@./config/scripts/config/conf -D config/win32config $(CONFIG_CONFIG_IN) > /dev/null
|
|
$(MAKE)
|
|
|
|
# The special linux release configuration
|
|
linuxconf: config/scripts/config/conf
|
|
@./config/scripts/config/conf -D config/linuxconfig $(CONFIG_CONFIG_IN) > /dev/null
|
|
$(MAKE)
|