summaryrefslogtreecommitdiff
path: root/packaging/redhat/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'packaging/redhat/Makefile')
-rw-r--r--packaging/redhat/Makefile100
1 files changed, 100 insertions, 0 deletions
diff --git a/packaging/redhat/Makefile b/packaging/redhat/Makefile
new file mode 100644
index 000000000..45f775734
--- /dev/null
+++ b/packaging/redhat/Makefile
@@ -0,0 +1,100 @@
+# FreeS/WAN RedHat RPM makefile
+# Copyright (C) 2002 Michael Richardson <mcr@freeswan.org>
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation; either version 2 of the License, or (at your
+# option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# RCSID $Id: Makefile,v 1.1 2004/03/15 20:35:27 as Exp $
+
+FREESWANSRCDIR=$(shell cd ../.. && pwd)
+include ${FREESWANSRCDIR}/Makefile.inc
+include ${FREESWANSRCDIR}/Makefile.ver
+
+
+# temporary directory to be used when building RPMs, and where to put the
+# resulting RPM tree
+RPMKERNDIR := $(shell echo `pwd`/tmp.rpmkernel)
+RPMTMPDIR=$(shell echo `pwd`/tmp.rpmbuild)
+RPMDEST := $(shell echo `pwd`/rpms)
+
+# definitions from main Makefile that may be relevant
+
+KERNELKLIPS=$(KERNELSRC)/net/ipsec
+KERNELCRYPTODES=$(KERNELSRC)/crypto/ciphers/des
+KERNELLIBFREESWAN=$(KERNELSRC)/lib/libfreeswan
+KERNELLIBZLIB=$(KERNELSRC)/lib/zlib
+KERNELINCLUDE=$(KERNELSRC)/include
+
+MAKEUTILS=${FREESWANSRCDIR}/packaging/utils
+ERRCHECK=${MAKEUTILS}/errcheck
+KVUTIL=${MAKEUTILS}/kernelversion
+KVSHORTUTIL=${MAKEUTILS}/kernelversion-short
+
+
+clean:
+ rm -rf $(shell echo `pwd`/BUILD.*)
+ rm -rf ${RPMTMPDIR}
+ rm -rf ${RPMDEST}
+ rm -f $(shell echo `pwd`/rpm.spec)
+
+rpm: rpm_userland rpm_modules rpm.spec final_rpm
+
+# RPM-build userland install in temporary directory
+rpm_userland: clean
+ mkdir -p $(RPMTMPDIR)
+ (cd ${FREESWANSRCDIR} && $(MAKE) programs install DESTDIR=$(RPMTMPDIR) && cd `pwd`)
+ for extras in README CHANGES ; do \
+ cp -f $(FREESWANSRCDIR)/$$extras $(RPMTMPDIR)$(FINALEXAMPLECONFDIR)/ ; \
+ done
+
+rpm_modules:
+ @if [ ! -d ${RH_KERNELSRC}/configs ]; then echo "Please fix RH_KERNELSRC in Makefile.inc (${RH_KERNELSRC})"; exit 1; fi
+ @KV=`${KVUTIL} $(RH_KERNELSRC)/Makefile | sed -e 's/custom//'` ; \
+ MD=${RPMTMPDIR}/lib/modules/$$KV/kernel/net/ipsec; mkdir -p $$MD; \
+ echo Installing into $$MD for $$KV; \
+ rm -rf BUILD.*; \
+ cat kernel-list.txt | while read kerneltype arch subarch; \
+ do \
+ mkdir -p BUILD.$$kerneltype; \
+ if [ -z "$$subarch" ]; then subarch=$$arch; fi; \
+ BUILDDIR=`pwd`/BUILD.$$kerneltype; \
+ HERE=`pwd` ;\
+ echo Building $$KV-$$kerneltype in $$BUILDDIR; \
+ ${MAKE} -C ${FREESWANSRCDIR} MODBUILDDIR=$$BUILDDIR KERNELSRC=${RH_KERNELSRC} ARCH=$$arch SUBARCH=$$subarch MODULE_DEF_INCLUDE=$$HERE/config-$$kerneltype.h module;\
+ cp $$BUILDDIR/ipsec.o $$MD/ipsec.o-$$kerneltype; \
+ goo="`nm -ao $$BUILDDIR/ipsec.o | ${FREESWANSRCDIR}/programs/calcgoo/calcgoo`"; \
+ (cd $$MD && ln -f ipsec.o-$$kerneltype $$goo); \
+ done
+
+# build spec file for building RPMs
+rpm.spec: rpm.in $(RH_KERNELSRC)/Makefile
+ KVORIG=`${KVUTIL} $(RH_KERNELSRC)/Makefile | sed -e 's/custom//'` ; \
+ KV=`echo $$KVORIG | sed -e 's/-/_/g' ` ; \
+ IPSECVERSIONFIXED=`echo ${IPSECVERSION} | sed -e 's/-/_/g'`; \
+ echo KVORIG: $$KVORIG KV: $$KV IV: $$IPSECVERSIONFIXED; \
+ sed -e "/@KERNELVERSION@/s;;$$KV;" \
+ -e "/@KERNELVERSIONORIG@/s;;$$KVORIG;" \
+ -e "/@IPSECVERSION@/s;;$$IPSECVERSIONFIXED;" \
+ -e '/@PUBDIR@/s;;$(PUBDIR);' \
+ -e '/@FINALBINDIR@/s;;$(FINALBINDIR);' \
+ -e '/@FINALLIBDIR@/s;;$(FINALLIBDIR);' \
+ -e '/@FINALCONFDDIR@/s;;$(FINALCONFDDIR);' \
+ -e '/@FINALCONFDIR@/s;;$(FINALCONFDIR);' \
+ -e '/@FINALEXAMPLECONFDIR@/s;;$(FINALEXAMPLECONFDIR);' \
+ -e '/@MANTREE@/s;;$(MANTREE);' rpm.in > rpm.spec
+
+# build RPMs
+final_rpm: rpm.spec
+ mkdir -p $(RPMDEST)
+ cd $(RPMDEST) ; mkdir -p SRPMS BUILD RPMS SPECS SOURCES
+ cd $(RPMDEST)/RPMS ; mkdir -p $(ARCH) noarch
+ $(RPMBUILD) -bb --define "buildroot $(RPMTMPDIR)" \
+ --define "_topdir $(RPMDEST)" rpm.spec
+ # that has, incidentally, gotten rid of $(RPMTMPDIR)