summaryrefslogtreecommitdiff
path: root/ACE/debian/rules
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/debian/rules')
-rwxr-xr-xACE/debian/rules120
1 files changed, 120 insertions, 0 deletions
diff --git a/ACE/debian/rules b/ACE/debian/rules
new file mode 100755
index 00000000000..2bc9510ec4f
--- /dev/null
+++ b/ACE/debian/rules
@@ -0,0 +1,120 @@
+#!/usr/bin/make -f
+
+# debian/rules file for ACE+TAO Debian GNU/Linux packages
+# written February 2002 by Ossama Othman <ossama@debian.org>
+# Modified August 2003 by Brian Nelson <pyro@debian.org>
+# Copyright (C) 2004 Raphael Bossek <bossekr@debian.org>
+# Copyright © 2005-2012 Thomas Girard <thomas.g.girard@free.fr>
+# Copyright © 2009-2014 Pau Garcia i Quiles <pgquiles@elpauer.org>
+# Copyright © 2010-2014 Johnny Willemsen <jwillemsen@remedy.nl>
+
+#export DEB_BUILD_MAINT_OPTIONS = hardening=+all
+export DEB_BUILD_MAINT_OPTIONS = hardening=+format,+fortify,+stackprotector,+relro,+bindnow
+DPKG_EXPORT_BUILDFLAGS = 1
+include /usr/share/dpkg/buildflags.mk
+CFLAGS+=$(CPPFLAGS)
+CXXFLAGS+=$(CPPFLAGS)
+
+MWCFLAGS := -type gnuace -noreldefs
+DSO_MAKE_FLAG := versioned_so=2
+INSTALL_FLAGS := DESTDIR=$(CURDIR)/debian/tmp INSTALL_PREFIX=/usr install_rpath=0 $(DSO_MAKE_FLAG)
+
+MAN1 := debian/ace_netsvcs.1 \
+ debian/mpc-ace.1
+# Where we install every file before calling dh_install
+DT := debian/tmp
+
+DOXYGEN_FILES_TO_REMOVE := -name '*.md5' -o \
+ -name '*.map' -o \
+ -name '*.tag'
+
+# Package names, used when overriding dh_installchangelogs
+ALL_PACKAGES := $(shell dh_listpackages)
+ALL_ACEXML := $(filter libacexml%,$(ALL_PACKAGES))
+
+export ACE_ROOT := $(shell pwd)
+export MPC_ROOT := $(ACE_ROOT)/MPC
+export LD_LIBRARY_PATH := $(LD_LIBRARY_PATH):$(ACE_ROOT)/lib
+
+ACE_MAJOR_VERSION := $(shell awk '/ACE_MAJOR_VERSION/ { print $$3 }' ${ACE_ROOT}/ace/Version.h)
+ACE_MINOR_VERSION := $(shell awk '/ACE_MINOR_VERSION/ { print $$3 }' ${ACE_ROOT}/ace/Version.h)
+ACE_MICRO_VERSION := $(shell awk '/ACE_MICRO_VERSION/ { print $$3 }' ${ACE_ROOT}/ace/Version.h)
+
+%:
+ dh $@
+
+# Implement our own configure machinery; it will copy Debian specific
+# configuration before launching MPC to generate ACE+TAO GNUmakefile
+.PHONY: configure
+configure: configure-stamp
+configure-stamp:
+ cp debian/platform_macros.GNU $(ACE_ROOT)/include/makeinclude
+ cp debian/config*.h $(ACE_ROOT)/ace/
+ cp debian/default.features $(ACE_ROOT)/bin/MakeProjectCreator/config
+ cp debian/ACE-DPKG.mwc $(ACE_ROOT)
+ cd $(ACE_ROOT) && $(ACE_ROOT)/bin/mwc.pl $(MWCFLAGS) ACE-DPKG.mwc
+ touch $@
+
+override_dh_auto_build-arch: configure-stamp
+ $(MAKE) -C $(ACE_ROOT) $(DSO_MAKE_FLAG)
+
+override_dh_auto_build-indep: configure-stamp
+ $(MAKE) -C $(ACE_ROOT) $(DSO_MAKE_FLAG)
+ cd $(ACE_ROOT) && bin/generate_doxygen.pl -is_release -exclude_tao -exclude_ciao -exclude_dance
+ find $(ACE_ROOT)/html $(DOXYGEN_FILES_TO_REMOVE) | xargs -r rm -f
+
+override_dh_auto_install: manpages-stamp
+ $(MAKE) -C $(ACE_ROOT) install $(INSTALL_FLAGS)
+ mkdir -p $(DT)/usr/share/man/man1
+ cp $(ACE_ROOT)/apps/gperf/ace_gperf.1 $(DT)/usr/share/man/man1
+# Relocate .idl and .pidl files
+ cd $(DT) && for f in $$(find usr/include -name '*.idl' -o -name '*.pidl') ; do \
+ g=$$(echo $${f%%include*}share/idl/$${f##*usr/include/}) ; \
+ mkdir -p $$(dirname $$g) ; \
+ mv $$f $$g ; \
+ done
+
+override_dh_auto_clean:
+ [ -f $(ACE_ROOT)/GNUmakefile ] && $(MAKE) -C $(ACE_ROOT) realclean $(DSO_MAKE_FLAG) || true
+ find $(ACE_ROOT) -name 'GNUmakefile*' -o -name '.depend.*' | xargs -r rm
+ rm -f $(ACE_ROOT)/include/makeinclude/platform_macros.GNU
+ rm -f $(ACE_ROOT)/bin/MakeProjectCreator/config/default.features
+ rm -f $(ACE_ROOT)/ace/config.h $(ACE_ROOT)/ace/config-hurd.h
+ rm -f $(ACE_ROOT)/ACE-DPKG.mwc
+ rm -f debian/*.1 debian/mpc-ace.sgml
+ rm -f *-stamp
+ rm -Rf $(ACE_ROOT)/html/libace-doc \
+ $(ACE_ROOT)/html/libacexml-doc \
+ $(ACE_ROOT)/doxygen_sqlite3.db
+
+override_dh_compress:
+ dh_compress -Xexamples
+
+# Add --list-missing to make sure we don't miss new binaries
+override_dh_install:
+ dh_install --list-missing
+
+# ACE+TAO has different changelogs. Use the right one in every package.
+override_dh_installchangelogs:
+ dh_installchangelogs -pace-gperf -pgperf-ace apps/gperf/ChangeLog
+ dh_installchangelogs -pmpc-ace MPC/ChangeLog
+ dh_installchangelogs $(addprefix -p,$(ALL_ACEXML)) ACEXML/ChangeLog
+ dh_installchangelogs --remaining-packages \
+ ChangeLogs/ACE-$(ACE_MAJOR_VERSION)_$(ACE_MINOR_VERSION)_$(ACE_MICRO_VERSION)
+
+override_dh_fixperms:
+ifneq (,$(filter libace-doc, $(shell dh_listpackages)))
+ find debian -name '*.pl' | xargs -r sed -i -e '1i#!/usr/bin/perl'
+endif
+ dh_fixperms
+
+debian/mpc-ace.sgml: MPC/docs/MPC.sgml
+ sed -e 's/mpc\.pl/mpc-ace/g' -e 's/mwc\.pl/mwc-ace/g' $< > $@
+
+debian/%.1: debian/%.sgml
+ docbook-to-man $< > $@
+
+.PHONY: manpages
+manpages: manpages-stamp
+manpages-stamp: $(MAN1)
+ touch $@