1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
|
#!/usr/bin/make -f
include /usr/share/dpkg/pkg-info.mk
include /usr/share/dpkg/buildopts.mk
CHANGELOG_DATE ?= $(shell LC_ALL=C date -u -d @$(SOURCE_DATE_EPOCH) +"%d %B %Y")
export DH_VERBOSE=1
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
BUILDDIR=$(CURDIR)/debian/build
ARCH=generic;ice40;ecp5;himbaechel
HIMBAECHEL_UARCH=gowin;gatemate
HIMBAECHEL_GOWIN_DEVICES=all
%:
dh $@
NO_GUI_PACKAGES = \
-Nnextpnr-ice40-qt \
-Nnextpnr-ecp5-qt \
-Nnextpnr-himbaechel-gowin-qt \
-Nnextpnr-himbaechel-gatemate-qt
CMAKE_FLAGS := \
-GNinja \
-DCURRENT_GIT_VERSION="$(DEB_VERSION)" \
-DBUILD_PYTHON=ON \
-DBUILD_TESTS=ON \
-DEXTERNAL_CHIPDB=ON \
-DARCH='$(ARCH)' \
-DICEBOX_DATADIR=/usr/share/fpga-icestorm/chipdb \
-DICESTORM_INSTALL_PREFIX=/usr/share/fpga-icestorm/chipdb \
-DTRELLIS_LIBDIR=/usr/lib/$(DEB_HOST_MULTIARCH)/trellis/ \
-DTRELLIS_DATADIR=/usr/share/trellis/ \
-DHIMBAECHEL_UARCH='$(HIMBAECHEL_UARCH)' \
-DHIMBAECHEL_SPLIT=ON \
-DHIMBAECHEL_GOWIN_DEVICES=$(HIMBAECHEL_GOWIN_DEVICES) \
-DHIMBAECHEL_PEPPERCORN_PATH=/usr/share/peppercorn
HELP2MAN_FLAGS = \
--name="Next Generation Place and Route" \
--version-string="$(DEB_VERSION)" \
--section=1 \
--manual="General Commands" \
--no-info \
--no-discard-stderr
override_dh_auto_clean:
rm -rf $(BUILDDIR)
rm -f debian/nextpnr-*.1
dh_auto_clean
override_dh_auto_configure:
dh_auto_configure \
--arch \
$(NO_GUI_PACKAGES) \
-B$(BUILDDIR)/cli \
-- \
$(CMAKE_FLAGS) \
-DBUILD_GUI=OFF \
-DEXPORT_BBA_FILES=$(BUILDDIR)/bba
dh_auto_configure \
--arch \
--remaining-packages \
-B$(BUILDDIR)/gui \
-- \
$(CMAKE_FLAGS) \
-DBUILD_GUI=ON \
-DIMPORT_BBA_FILES=$(BUILDDIR)/bba
override_dh_auto_build:
dh_auto_build \
--arch \
$(NO_GUI_PACKAGES) \
-B$(BUILDDIR)/cli
dh_auto_build \
--arch \
--remaining-packages \
-B$(BUILDDIR)/gui
override_dh_auto_test:
dh_auto_test \
--arch \
-B$(BUILDDIR)/cli
#dh_auto_test -B$(BUILDDIR)/gui
override_dh_auto_install:
dh_auto_install \
--arch \
$(NO_GUI_PACKAGES) \
-B$(BUILDDIR)/cli \
--destdir=debian/tmp/cli
dh_auto_install \
--arch \
--remaining-packages \
-B$(BUILDDIR)/gui \
--destdir=debian/tmp/gui
override_dh_install:
dh_install \
--arch \
$(NO_GUI_PACKAGES) \
--sourcedir=debian/tmp/cli
dh_install \
--arch \
--remaining-packages \
--sourcedir=debian/tmp/gui
define help2man
help2man \
$(HELP2MAN_FLAGS) \
debian/tmp/$(1)/usr/bin/$(2) \
> debian/tmp/$(1)/$(2).1
endef
override_dh_installman:
$(foreach prog,$(notdir $(wildcard debian/tmp/cli/usr/bin/nextpnr-*)),$(call help2man,cli,$(prog)))
$(foreach prog,$(notdir $(wildcard debian/tmp/gui/usr/bin/nextpnr-*)),$(call help2man,gui,$(prog)))
dh_installman \
--arch \
$(NO_GUI_PACKAGES) \
--sourcedir=debian/tmp/cli
dh_installman \
--arch \
--remaining-packages \
--sourcedir=debian/tmp/gui
override_dh_installexamples:
dh_installexamples --exclude=.gitignore
|