summaryrefslogtreecommitdiff
path: root/debian/rules
blob: 7168e013f102338cbc2e384135c30c5f9be92999 (plain)
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
#!/usr/bin/make -f
# -*- makefile -*-
export SHELL = bash

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

DEB_HOST_ARCH_OS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS)
DEB_HOST_ARCH_CPU ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU)
DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
HOST_CFLAGS = -fcommon
LDFLAGS ?= $(shell dpkg-buildflags --get LDFLAGS)
CFLAGS ?= $(shell dpkg-buildflags --get CFLAGS) $(HOST_CFLAGS)

# Some files use -Wno-format, which then conflicts
CFLAGS := $(filter-out -Werror=format-security,$(CFLAGS)) -fno-omit-frame-pointer

ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
else
NUMJOBS = 1
endif

RUMPMAKE := $(CURDIR)/buildrump.sh/src/obj/tooldir/bin/nbmake-$(DEB_HOST_ARCH_CPU)

%:
	rm -f debian/*.debhelper.log
	dh $@ 

override_dh_auto_clean:
	if test -e $(RUMPMAKE); then \
	( cd pci-userspace/src-linux-uio && $(RUMPMAKE) clean ) ; \
	( cd pci-userspace/src-gnu && $(RUMPMAKE) clean ) ; \
	( cd buildrump.sh/src/lib/librumpuser && RUMPRUN=true $(RUMPMAKE) clean ) ; \
	( cd buildrump.sh/src && HOST_CC=gcc HOST_SH=/bin/sh \
            BSDOBJDIR=$(CURDIR)/obj \
            ./build.sh \
                -V TOOLS_BUILDRUMP=yes \
                -V MKBINUTILS=no -V MKGCC=no -V MKGDB=no -V MKGROFF=no -V MKDTRACE=no -V MKZFS=no \
                -V TOPRUMP="$(CURDIR)/buildrump.sh/src/sys/rump" \
                -U -u -T ./obj/tooldir -m $(DEB_HOST_ARCH_CPU) cleandir || true ) ; \
	fi
	rm -fr obj
	-find buildrump.sh/src -type f -name .depend -or -name \*.d | xargs -L512 rm -f
	-find buildrump.sh/src -type l -name obj | xargs -L512 rm -f
	rm -f buildrump.sh/src/lib/librumpuser/config.log
	rm -f buildrump.sh/src/lib/librumpuser/config.status
	rm -f buildrump.sh/src/lib/librumpuser/rumpuser_config.h
	rm -f buildrump.sh/src/mig

override_dh_auto_configure-arch:
	dh_testdir -a
	mkdir -p obj
	dh_auto_configure -D buildrump.sh/src/lib/librumpuser

override_dh_auto_build-arch:
	dh_testdir -a
	mkdir -p obj
	cd buildrump.sh/src && HOST_CC=gcc TARGET_CC=$(DEB_HOST_GNU_TYPE)-gcc TARGET_CXX=$(DEB_HOST_GNU_TYPE)-gcc TARGET_LD=$(DEB_HOST_GNU_TYPE)-ld TARGET_MIG=$(DEB_HOST_GNU_TYPE)-mig \
            TARGET_LDADD="-B/usr/lib/$(DEB_HOST_MULTIARCH) -L/usr/lib/$(DEB_HOST_MULTIARCH) -L/lib/$(DEB_HOST_MULTIARCH)" \
            _GCC_CRTENDS= _GCC_CRTEND= _GCC_CRTBEGINS= _GCC_CRTBEGIN= _GCC_CRTI= _GCC_CRTN= \
            BSDOBJDIR=$(CURDIR)/obj \
            ./build.sh \
                -V TOOLS_BUILDRUMP=yes \
                -V MKBINUTILS=no -V MKGDB=no -V MKGROFF=no -V MKDTRACE=no -V MKZFS=no \
                -V TOPRUMP="$(CURDIR)/buildrump.sh/src/sys/rump" \
                -V BUILDRUMP_CPPFLAGS="-Wno-error=stringop-overread" \
                -V RUMPUSER_EXTERNAL_DPLIBS=pthread \
				-V CPPFLAGS="-I../../obj/destdir.$(DEB_HOST_ARCH_CPU)/usr/include -D_FILE_OFFSET_BITS=64 -DRUMP_REGISTER_T=int -DRUMPUSER_CONFIG=yes -DNO_PCI_MSI_MSIX=yes -DNUSB_DMA=1 -DPAE" \
                -V CWARNFLAGS="-Wno-error=maybe-uninitialized -Wno-error=address-of-packed-member -Wno-error=unused-variable -Wno-error=stack-protector -Wno-error=array-parameter -Wno-error=array-bounds -Wno-error=stringop-overflow" \
                -V LIBCRTBEGIN=" " -V LIBCRTEND=" " -V LIBCRT0=" " -V LIBCRTI=" " \
                -V MIG=mig \
                -V _GCC_CRTENDS=" " -V _GCC_CRTEND=" " \
                -V _GCC_CRTBEGINS=" " -V _GCC_CRTBEGIN=" " \
                -V _GCC_CRTI=" " -V _GCC_CRTN=" " \
                -V TARGET_LDADD="-B/usr/lib/$(DEB_HOST_MULTIARCH) -L/usr/lib/$(DEB_HOST_MULTIARCH) -L/lib/$(DEB_HOST_MULTIARCH)" \
                -U -u -T ./obj/tooldir -m $(DEB_HOST_ARCH_CPU) -j $(NUMJOBS) tools rump
	cd buildrump.sh/src/lib/librumpuser && RUMPRUN=true $(RUMPMAKE) dependall
ifeq ($(DEB_HOST_ARCH_OS), linux)
#	cd pci-userspace/src-linux-uio && $(RUMPMAKE) dependall
endif
ifeq ($(DEB_HOST_ARCH_OS), hurd)
	cd pci-userspace/src-gnu && $(RUMPMAKE) dependall
endif

override_dh_auto_install:
	mkdir -p $(CURDIR)/debian/tmp/usr/include
	mkdir -p $(CURDIR)/debian/tmp/usr/lib
	cp -a $(CURDIR)/buildrump.sh/src/sys/rump/include/rump $(CURDIR)/debian/tmp/usr/include/
	find $(CURDIR)/buildrump.sh/src $(CURDIR)/obj -type f,l \
            -name "librump*.so*" -exec cp -a {} $(CURDIR)/debian/tmp/usr/lib/ \;
	find $(CURDIR)/buildrump.sh/src $(CURDIR)/obj -type f \
            -name "librump*.a" -exec cp -a {} $(CURDIR)/debian/tmp/usr/lib/ \;

	# rempve non lib files
	rm -f $(CURDIR)/debian/tmp/usr/lib/*.map
	# Remove it to make lintian happy
	rm -f $(CURDIR)/debian/tmp/usr/lib/librumpkern_z.*