summaryrefslogtreecommitdiffstats
path: root/conf.d/packaging/debian.rules
blob: f9576409909fd113d28246f2d57878d7adcad5ae (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
#!/usr/bin/make -f
# -*- makefile -*-
# Uncomment this to turn on verbose mode.
export DH_VERBOSE=1

# These are used for cross-compiling and for saving the configure script
# from having to guess our platform (since we know it already)
DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)


CFLAGS = -Wall -g

ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
       CFLAGS += -O0
else
       CFLAGS += -O2
endif
ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
       INSTALL_PROGRAM += -s
endif

configure: configure-stamp
configure-stamp:
	dh_testdir
	#
	touch configure-stamp

build: build-stamp
build-stamp: configure-stamp
	dh_testdir
	mkdir -p build
	export PKG_CONFIG_PATH=/opt/AGL/lib/$(DEB_HOST_MULTIARCH)/pkgconfig;cd build;cmake ../ -DCMAKE_INSTALL_PREFIX:PATH=/opt/AGL -DCMAKE_INSTALL_LIBDIR:PATH=lib/$(DEB_HOST_MULTIARCH) -DAGL_DEVEL=1 -DINCLUDE_MONITORING=ON;$(MAKE)
	touch build-stamp

clean:
	#dh_testdir
	dh_testroot
	rm -f configure-stamp build-stamp
	[ ! -f Makefile ] || $(MAKE) distclean
	#dh_clean

install: build
	dh_testdir
	dh_testroot
	dh_prep
	dh_installdirs
	# Add here commands to install the package into debian/tmp
	cd build;make install DESTDIR=/usr/src/packages/BUILD/debian/tmp
	mkdir -p debian/tmp/etc/profile.d
	echo '#----------  AGL app-framework-binder options Start ---------" '                          > debian/tmp/etc/profile.d/AGL_app-framework-binder.sh
	echo '# Object: AGL cmake option for  binder/bindings'                                          >> debian/tmp/etc/profile.d/AGL_app-framework-binder.sh
	echo 'export LD_LIBRARY_PATH=/opt/AGL/lib/$(DEB_HOST_MULTIARCH):$${LD_LIBRARY_PATH}'            >> debian/tmp/etc/profile.d/AGL_app-framework-binder.sh
	echo 'export LIBRARY_PATH=/opt/AGL/lib/$(DEB_HOST_MULTIARCH):$${LIBRARY_PATH}'                  >> debian/tmp/etc/profile.d/AGL_app-framework-binder.sh
	echo 'export PKG_CONFIG_PATH=/opt/AGL/lib/$(DEB_HOST_MULTIARCH)/pkgconfig:$${PKG_CONFIG_PATH}'  >> debian/tmp/etc/profile.d/AGL_app-framework-binder.sh
	echo 'export PATH=/opt/AGL/bin:$${PATH}'                                                        >> debian/tmp/etc/profile.d/AGL_app-framework-binder.sh
	echo '#----------  AGL options End ---------'                                                   >> debian/tmp/etc/profile.d/AGL_app-framework-binder.sh
	# Move all files in their corresponding package
	dh_install --list-missing -s --sourcedir=debian/tmp
	# empty dependency_libs in .la files
	#sed -i "/dependency_libs/ s/'.*'/''/" `find debian/ -name '*.la'`

# Build architecture-independent files here.
binary-indep: build install
# We have nothing to do by default.

# Build architecture-dependent files here.
binary-arch: build install
	dh_testdir
	dh_testroot
	dh_installchangelogs
	dh_installdocs
	dh_installexamples
	dh_installman
	dh_link
	dh_strip
	dh_compress
	dh_fixperms
	dh_makeshlibs -V
	dh_installdeb
	#dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb

binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install
pendencies to reduce the size of the dot files." " For example, A->B, B->C, A->C, then A->C can be removed.", action="store_true", default=False) self.args = parser.parse_args() if len(sys.argv) != 3 and len(sys.argv) < 5: print('ERROR: Not enough args, see --help for usage') def main(self): #print(self.args.dotfile[0]) # The format is {key: depends} depends = {} with open(self.args.dotfile[0], 'r') as f: for line in f.readlines(): if ' -> ' not in line: continue line_no_quotes = line.replace('"', '') m = re.match("(.*) -> (.*)", line_no_quotes) if not m: print('WARNING: Found unexpected line: %s' % line) continue key = m.group(1) if key == "meta-world-pkgdata": continue dep = m.group(2) if key in depends: if not key in depends[key]: depends[key].add(dep) else: print('WARNING: Fonud duplicated line: %s' % line) else: depends[key] = set() depends[key].add(dep) if self.args.remove: reduced_depends = {} for k, deps in depends.items(): child_deps = set() added = set() # Both direct and indirect depends are already in the dict, so # we don't have to do this recursively. for dep in deps: if dep in depends: child_deps |= depends[dep] reduced_depends[k] = deps - child_deps outfile= '%s-reduced%s' % (self.args.dotfile[0][:-4], self.args.dotfile[0][-4:]) with open(outfile, 'w') as f: print('Saving reduced dot file to %s' % outfile) f.write('digraph depends {\n') for k, v in reduced_depends.items(): for dep in v: f.write('"%s" -> "%s"\n' % (k, dep)) f.write('}\n') sys.exit(0) if self.args.key not in depends: print("ERROR: Can't find key %s in %s" % (self.args.key, self.args.dotfile[0])) sys.exit(1) if self.args.depends: if self.args.key in depends: print('Depends: %s' % ' '.join(depends[self.args.key])) reverse_deps = [] if self.args.why: for k, v in depends.items(): if self.args.key in v and not k in reverse_deps: reverse_deps.append(k) print('Because: %s' % ' '.join(reverse_deps)) if __name__ == "__main__": try: dot = Dot() ret = dot.main() except Exception as esc: ret = 1 import traceback traceback.print_exc() sys.exit(ret)