Fredrik Roubert | b5a2505 | 2011-08-19 13:40:10 +0000 | [diff] [blame] | 1 | #!/usr/bin/make -f |
| 2 | # -*- makefile -*- |
| 3 | |
| 4 | # Copyright (C) 2011 The Libphonenumber Authors |
| 5 | # |
| 6 | # Licensed under the Apache License, Version 2.0 (the "License"); |
| 7 | # you may not use this file except in compliance with the License. |
| 8 | # You may obtain a copy of the License at |
| 9 | # |
| 10 | # http://www.apache.org/licenses/LICENSE-2.0 |
| 11 | # |
| 12 | # Unless required by applicable law or agreed to in writing, software |
| 13 | # distributed under the License is distributed on an "AS IS" BASIS, |
| 14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 15 | # See the License for the specific language governing permissions and |
| 16 | # limitations under the License. |
| 17 | |
| 18 | # Uncomment this to turn on verbose mode. |
| 19 | #export DH_VERBOSE=1 |
| 20 | |
Daniel Pocock | d7a64d7 | 2014-08-22 14:44:19 +0000 | [diff] [blame] | 21 | include /usr/share/cdbs/1/rules/debhelper.mk |
| 22 | include /usr/share/cdbs/1/class/maven.mk |
| 23 | |
| 24 | JAVA_HOME := /usr/lib/jvm/default-java |
| 25 | DEB_MAVEN_DOC_TARGET := javadoc:jar javadoc:aggregate |
| 26 | |
Fredrik Roubert | b5a2505 | 2011-08-19 13:40:10 +0000 | [diff] [blame] | 27 | CMAKE ?= cmake |
Fredrik Roubert | b5a2505 | 2011-08-19 13:40:10 +0000 | [diff] [blame] | 28 | |
| 29 | CMAKE_FLAGS := -DCMAKE_INSTALL_PREFIX=/usr |
| 30 | CPP_BUILD := cpp/build |
Fredrik Roubert | a6f2d20 | 2012-09-27 15:47:13 +0000 | [diff] [blame] | 31 | JAVA_BUILD := java/build |
Fredrik Roubert | b5a2505 | 2011-08-19 13:40:10 +0000 | [diff] [blame] | 32 | |
Fredrik Roubert | 7c58e02 | 2014-06-03 08:24:40 +0000 | [diff] [blame] | 33 | # CMake doesn't read CPPFLAGS and dh_auto commands are not used in this rules |
| 34 | # file so we have to manually set the flags here to ensure that hardening flags |
| 35 | # are used: |
| 36 | CFLAGS += $(CPPFLAGS) |
| 37 | CXXFLAGS += $(CPPFLAGS) |
| 38 | |
Fredrik Roubert | b5a2505 | 2011-08-19 13:40:10 +0000 | [diff] [blame] | 39 | ifneq (,$(filter noopt,$(DEB_BUILD_OPTIONS))) |
| 40 | CFLAGS += -O0 |
| 41 | else |
| 42 | CFLAGS += -O2 |
| 43 | endif |
| 44 | ifeq (,$(filter nostrip,$(DEB_BUILD_OPTIONS))) |
| 45 | INSTALL_PROGRAM += -s |
| 46 | endif |
| 47 | ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) |
| 48 | NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) |
| 49 | MAKEFLAGS += -j$(NUMJOBS) |
| 50 | endif |
| 51 | |
Daniel Pocock | d7a64d7 | 2014-08-22 14:44:19 +0000 | [diff] [blame] | 52 | #%: |
| 53 | # dh $@ --with javahelper |
Fredrik Roubert | b5a2505 | 2011-08-19 13:40:10 +0000 | [diff] [blame] | 54 | |
Daniel Pocock | d7a64d7 | 2014-08-22 14:44:19 +0000 | [diff] [blame] | 55 | #override_dh_auto_configure: |
Daniel Pocock | 662c08a | 2015-09-22 13:37:50 +0200 | [diff] [blame] | 56 | configure/libphonenumber7:: |
Fredrik Roubert | b5a2505 | 2011-08-19 13:40:10 +0000 | [diff] [blame] | 57 | mkdir -p $(CPP_BUILD) && cd $(CPP_BUILD) && $(CMAKE) $(CMAKE_FLAGS) .. |
| 58 | |
Daniel Pocock | d7a64d7 | 2014-08-22 14:44:19 +0000 | [diff] [blame] | 59 | #override_dh_auto_build: |
| 60 | # ( cd tools/java && $(MVN) package ) |
| 61 | # mkdir java/lib |
| 62 | # ln -s /usr/share/java/junit4.jar java/lib/junit-4.8.1.jar |
| 63 | # $(ANT) -f $(JAVA_BUILD).xml jar |
Daniel Pocock | 662c08a | 2015-09-22 13:37:50 +0200 | [diff] [blame] | 64 | build/libphonenumber7:: |
Daniel Pocock | d2d7a2c | 2014-08-27 19:13:52 +0000 | [diff] [blame] | 65 | ln -sf cpp-build-1.0-SNAPSHOT.jar tools/java/cpp-build/target/cpp-build-1.0-SNAPSHOT-jar-with-dependencies.jar |
| 66 | ln -sf /usr/share/java/protobuf.jar tools/java/cpp-build/target/protobuf-java-debian.jar |
Fredrik Roubert | b5a2505 | 2011-08-19 13:40:10 +0000 | [diff] [blame] | 67 | $(MAKE) -C $(CPP_BUILD) phonenumber phonenumber-shared |
Fredrik Roubert | b5a2505 | 2011-08-19 13:40:10 +0000 | [diff] [blame] | 68 | |
Daniel Pocock | d7a64d7 | 2014-08-22 14:44:19 +0000 | [diff] [blame] | 69 | #override_dh_auto_test: |
| 70 | #ifeq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS))) |
| 71 | # $(MAKE) -C $(CPP_BUILD) test |
| 72 | # $(ANT) -f $(JAVA_BUILD).xml junit |
| 73 | #endif |
Fredrik Roubert | b5a2505 | 2011-08-19 13:40:10 +0000 | [diff] [blame] | 74 | |
Fredrik Roubert | 7c58e02 | 2014-06-03 08:24:40 +0000 | [diff] [blame] | 75 | # Hack for multiarch: CMake doesn't really support libdir so we just manually |
| 76 | # move /usr/lib/* to a proper multiarch location. |
Daniel Pocock | d7a64d7 | 2014-08-22 14:44:19 +0000 | [diff] [blame] | 77 | #override_dh_auto_install: |
| 78 | common-install-arch:: |
Fredrik Roubert | b5a2505 | 2011-08-19 13:40:10 +0000 | [diff] [blame] | 79 | dh_auto_install --builddirectory=$(CPP_BUILD) |
Fredrik Roubert | 7c58e02 | 2014-06-03 08:24:40 +0000 | [diff] [blame] | 80 | mkdir -p debian/tmp/usr/lib-$(DEB_HOST_MULTIARCH) |
| 81 | mv debian/tmp/usr/lib/* debian/tmp/usr/lib-$(DEB_HOST_MULTIARCH) |
| 82 | mv debian/tmp/usr/lib-$(DEB_HOST_MULTIARCH) \ |
| 83 | debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH) |
Fredrik Roubert | b5a2505 | 2011-08-19 13:40:10 +0000 | [diff] [blame] | 84 | |
Daniel Pocock | d7a64d7 | 2014-08-22 14:44:19 +0000 | [diff] [blame] | 85 | #override_dh_auto_clean: |
| 86 | clean:: |
Fredrik Roubert | b5a2505 | 2011-08-19 13:40:10 +0000 | [diff] [blame] | 87 | -test -d $(CPP_BUILD) && $(MAKE) -C $(CPP_BUILD) clean |
Daniel Pocock | d7a64d7 | 2014-08-22 14:44:19 +0000 | [diff] [blame] | 88 | #-$(ANT) -f $(JAVA_BUILD).xml clean |
| 89 | #-( cd tools/java && $(MVN) clean ) |