File: rules

package info (click to toggle)
netbeans 8.1%2Bdfsg3-2
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 816,472 kB
  • ctags: 847,258
  • sloc: java: 5,564,229; xml: 634,273; cpp: 25,695; ansic: 20,104; jsp: 12,621; sh: 10,354; php: 4,204; makefile: 1,456; fortran: 1,200; sql: 1,192; objc: 288; perl: 277; haskell: 120; yacc: 30; awk: 17; lex: 11; asm: 4
file content (200 lines) | stat: -rwxr-xr-x 10,415 bytes parent folder | download
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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
#!/usr/bin/make -f

export JAVA_HOME=/usr/lib/jvm/default-java
export TZ=UTC

# Included clusters
pkg-nb                         := netbeans
base-apisupport                := apisupport3
base-ide                       := ide14
base-java                      := java5
base-nb                        := nb
base-platform                  := platform18

pkg-apisupport                 := libnb-$(base-apisupport)-java
pkg-ide                        := libnb-$(base-ide)-java
pkg-java                       := libnb-$(base-java)-java


NBDIR := /usr/share/netbeans
export JAVADIR := /usr/share/java

JH_JAR           := jhall.jar
JSEARCH_JAR      := jsearch.jar
NB_JH_JAR        := jhall-2.0_05.jar
NB_JSEARCH_JAR   := jsearch-2.0_05.jar

NB_INSTALL_DIR   := usr/share/netbeans


INSTALL          := dh_install -p
LINK             := dh_link -p

DEB_UPSTREAM_VERSION = $(shell dpkg-parsechangelog | \
                       grep -e '^Version' | \
                       perl -pi -e 's/^Version:\s+(.*)\+dfsg\d+-\d+.*$$/$$1/')

BUILDSTAMP := $(shell date --utc --date="`dpkg-parsechangelog -SDate`" "+%Y%m%d")
BUILD_DATE := $(shell dpkg-parsechangelog --show-field=Date)

# Defined function to be used to create symlinks
define symlink
	mkdir -p $(dir $(2))
	ln -sf $(1) $(2)
endef

%:
	dh $@ --parallel --with javahelper


override_dh_auto_build:
	# w3c-sgml-lib: needed for xml validation, otherwise FTBFS
	mkdir -p nbbuild/external/xhtml1-dtds
	ln -sf /usr/share/xml/w3c-sgml-lib/schema/dtd/REC-xhtml1-20020801/xhtml* nbbuild/external/xhtml1-dtds
	ln -sf /usr/share/xml/w3c-sgml-lib/schema/dtd/REC-xhtml-modularization-20100729/xhtml* nbbuild/external/xhtml1-dtds
	# link Debian's system jars
	$(shell awk 'NF==4 {printf("ln -sf %s %s/%s;\n",$$1,$$2,$$4)}' debian/linked-jars)
	# ReproducibleBuilds TimestampsInZip
	# https://wiki.debian.org/ReproducibleBuilds/TimestampsInZip
	find '$(CURDIR)' -newermt '$(BUILD_DATE)' -print0 | \
		xargs -0r touch --no-dereference --date='$(BUILD_DATE)'
	################################################################
	# Build the IDE. DISPLAY must be unset to avoid build failures.
	unset DISPLAY; ant \
	-Dbuildstamp=$(BUILDSTAMP) \
	-Dhg.id=debian-$(DEB_UPSTREAM_VERSION) \
	-Dpermit.jdk8.builds=true \
	-Dbuild.compiler.deprecation=false \
	-Dbuild.compiler.debug=false \
	-Dext.binaries.downloaded=true \
	-Dverify.checkout=false \
	-Dcluster.config=basic \
	-f nbbuild/build.xml build-nozip
	# Convert the *.icns hicolor icon into a png icon
	icns2png -x -s 128x128 -d 32 ide.branding/release/netbeans.icns



override_dh_auto_install:
	# recreate links
	$(shell awk 'NF==4 {printf("ln -sf %s nbbuild/netbeans/%s/%s;\n",$$1,$$3,$$4)}' debian/linked-jars)
	# Install libraries
	mh_installjar -plibnb-absolutelayout-java -l debian/pom/AbsoluteLayout.xml \
		nbbuild/netbeans/java/modules/ext/AbsoluteLayout.jar
	mh_installpom -plibnb-absolutelayout-java debian/pom/AbsoluteLayout.xml
	#
	# Install IDE package files
	echo > nbbuild/netbeans/ide/.noautoupdate
	echo > nbbuild/netbeans/ide/.lastModified
	$(INSTALL)$(pkg-ide) nbbuild/netbeans/ide/*               $(NB_INSTALL_DIR)/$(base-ide)
	$(INSTALL)$(pkg-ide) nbbuild/netbeans/ide/.noautoupdate   $(NB_INSTALL_DIR)/$(base-ide)
	$(INSTALL)$(pkg-ide) nbbuild/netbeans/ide/.lastModified   $(NB_INSTALL_DIR)/$(base-ide)
	# See netbeans-slf4j.dummy.patch for further information
	$(LINK)$(pkg-ide) usr/share/java/slf4j-api.jar $(NB_INSTALL_DIR)/$(base-ide)/modules/slf4j-dummy.jar
	# Symlink IDE modules to corresponding system jar files
	$(LINK)$(pkg-ide) usr/share/java/org.eclipse.jgit.jar $(NB_INSTALL_DIR)/$(base-ide)/modules/org-eclipse-jgit.jar
	$(LINK)$(pkg-ide) usr/share/java/org.eclipse.jgit.java7.jar $(NB_INSTALL_DIR)/$(base-ide)/modules/org-eclipse-jgit-java7.jar
	$(LINK)$(pkg-ide) usr/share/java/sqljet.jar $(NB_INSTALL_DIR)/$(base-ide)/modules/ext/sqljet.jar
	$(LINK)$(pkg-ide) usr/share/java/svnClientAdapter.jar $(NB_INSTALL_DIR)/$(base-ide)/modules/ext/svnClientAdapter-main.jar
	$(LINK)$(pkg-ide) usr/share/java/svn-javahl.jar $(NB_INSTALL_DIR)/$(base-ide)/modules/ext/svnjavahl.jar
	$(LINK)$(pkg-ide) usr/share/java/svnkit-javahl16.jar $(NB_INSTALL_DIR)/$(base-ide)/modules/ext/svnkit-javahl16.jar
	$(LINK)$(pkg-ide) usr/share/java/trilead-ssh2.jar $(NB_INSTALL_DIR)/$(base-ide)/modules/ext/trilead.ssh2.jar
	$(LINK)$(pkg-ide) usr/share/java/jsch.agentproxy.usocket-jna.jar $(NB_INSTALL_DIR)/$(base-ide)/modules/ext/jsch-agentproxy-usocket-jna.jar
	$(LINK)$(pkg-ide) usr/share/java/htmlparser.jar $(NB_INSTALL_DIR)/$(base-ide)/modules/ext/html5-parser.jar
	$(LINK)$(pkg-ide) usr/share/java/jsch.agentproxy.sshagent.jar $(NB_INSTALL_DIR)/$(base-ide)/modules/ext/jsch-agentproxy-sshagent.jar
	$(LINK)$(pkg-ide) usr/share/java/jsch.agentproxy.pageant.jar $(NB_INSTALL_DIR)/$(base-ide)/modules/ext/jsch-agentproxy-pageant.jar
	$(LINK)$(pkg-ide) usr/share/java/jsch.agentproxy.core.jar $(NB_INSTALL_DIR)/$(base-ide)/modules/ext/jsch-agentproxy-core.jar
	# Make hostinfo.sh executable to silence Lintian warning about script-not-exectuable
	find . -type f -name "hostinfo.sh" -exec chmod a+x {} \;

	# Install Java package files
	echo > nbbuild/netbeans/java/.noautoupdate
	echo > nbbuild/netbeans/java/.lastModified
	$(INSTALL)$(pkg-java) nbbuild/netbeans/extide/*           $(NB_INSTALL_DIR)/$(base-java)
	$(INSTALL)$(pkg-java) nbbuild/netbeans/java/*             $(NB_INSTALL_DIR)/$(base-java)
	$(INSTALL)$(pkg-java) nbbuild/netbeans/java/.noautoupdate $(NB_INSTALL_DIR)/$(base-java)
	$(INSTALL)$(pkg-java) nbbuild/netbeans/java/.lastModified $(NB_INSTALL_DIR)/$(base-java)
	# Link in Ant libraries and binaries
	-rmdir debian/$(pkg-java)/$(NB_INSTALL_DIR)/$(base-java)/ant/lib
	$(LINK)$(pkg-java)    usr/share/ant/bin     $(NB_INSTALL_DIR)/$(base-java)/ant/bin
	$(LINK)$(pkg-java)    usr/share/ant/etc     $(NB_INSTALL_DIR)/$(base-java)/ant/etc
	$(LINK)$(pkg-java)    usr/share/ant/lib     $(NB_INSTALL_DIR)/$(base-java)/ant/lib
	# Link in AbsoluteLayout jar
	-rm debian/$(pkg-java)/$(NB_INSTALL_DIR)/$(base-java)/modules/ext/AbsoluteLayout.jar
	$(LINK)$(pkg-java)    usr/share/java/AbsoluteLayout.jar  $(NB_INSTALL_DIR)/$(base-java)/modules/ext/AbsoluteLayout.jar

	# Install API support package files
	echo > nbbuild/netbeans/apisupport/.noautoupdate
	echo > nbbuild/netbeans/apisupport/.lastModified
	$(INSTALL)$(pkg-apisupport) nbbuild/netbeans/apisupport/*              $(NB_INSTALL_DIR)/$(base-apisupport)
	$(INSTALL)$(pkg-apisupport) nbbuild/netbeans/apisupport/.noautoupdate  $(NB_INSTALL_DIR)/$(base-apisupport)
	$(INSTALL)$(pkg-apisupport) nbbuild/netbeans/apisupport/.lastModified  $(NB_INSTALL_DIR)/$(base-apisupport)
	# Install Netbeans package files
	echo > nbbuild/netbeans/nb/.noautoupdate
	$(INSTALL)$(pkg-nb) nbbuild/netbeans/nb/*               $(NB_INSTALL_DIR)/$(DEB_UPSTREAM_VERSION)/nb
	$(INSTALL)$(pkg-nb) nbbuild/netbeans/nb/.lastModified   $(NB_INSTALL_DIR)/$(DEB_UPSTREAM_VERSION)/nb
	$(INSTALL)$(pkg-nb) nbbuild/netbeans/nb/.noautoupdate   $(NB_INSTALL_DIR)/$(DEB_UPSTREAM_VERSION)/nb
	$(INSTALL)$(pkg-nb) nbbuild/netbeans/bin/*              $(NB_INSTALL_DIR)/$(DEB_UPSTREAM_VERSION)/bin
	$(INSTALL)$(pkg-nb) nbbuild/netbeans/CREDITS.html                 usr/share/$(pkg-nb)
	$(INSTALL)$(pkg-nb) nbbuild/netbeans/README.html                  usr/share/$(pkg-nb)
	$(INSTALL)$(pkg-nb) nbbuild/netbeans/netbeans.css                 usr/share/$(pkg-nb)
	# Install 128x128 netbeans icon to hicolor directory
	mv netbeans_128x128x32.png netbeans.png
	$(INSTALL)$(pkg-nb) netbeans.png usr/share/icons/hicolor/128x128/apps
	$(LINK)$(pkg-nb)    $(NB_INSTALL_DIR)/$(base-platform) $(NB_INSTALL_DIR)/$(DEB_UPSTREAM_VERSION)/platform
	$(LINK)$(pkg-nb)    $(NB_INSTALL_DIR)/harness          $(NB_INSTALL_DIR)/$(DEB_UPSTREAM_VERSION)/harness
	$(LINK)$(pkg-nb)    $(NB_INSTALL_DIR)/$(base-apisupport) $(NB_INSTALL_DIR)/$(DEB_UPSTREAM_VERSION)/apisupport
	$(LINK)$(pkg-nb)    $(NB_INSTALL_DIR)/$(base-ide)        $(NB_INSTALL_DIR)/$(DEB_UPSTREAM_VERSION)/ide
	$(LINK)$(pkg-nb)    $(NB_INSTALL_DIR)/$(base-java)       $(NB_INSTALL_DIR)/$(DEB_UPSTREAM_VERSION)/java
	# Symlink netbeans icon to the appropriate hicolor directory
	$(LINK)$(pkg-nb) $(NB_INSTALL_DIR)/$(DEB_UPSTREAM_VERSION)/nb/netbeans.png \
	/usr/share/icons/hicolor/32x32/apps/netbeans.png

	# Create file marker to avoid displaying license dialog at first IDE start
	echo > debian/license_accepted
	$(INSTALL)$(pkg-nb) debian/license_accepted $(NB_INSTALL_DIR)/$(DEB_UPSTREAM_VERSION)/nb/var
	# Install file productid used by autoupdate to report installation type
	$(INSTALL)$(pkg-nb) debian/productid   $(NB_INSTALL_DIR)/$(DEB_UPSTREAM_VERSION)/nb/config

	# Install netbeans.conf
	$(INSTALL)$(pkg-nb) nbbuild/netbeans/etc/netbeans.conf etc
	$(LINK)$(pkg-nb) etc/netbeans.conf $(NB_INSTALL_DIR)/$(DEB_UPSTREAM_VERSION)/etc/netbeans.conf

	# Install netbeans.xpm icon
	$(INSTALL)$(pkg-nb) debian/icons/netbeans.xpm usr/share/pixmaps

	# Install netbeans.clusters
	$(INSTALL)$(pkg-nb) nbbuild/netbeans/etc/netbeans.clusters etc
	$(LINK)$(pkg-nb) etc/netbeans.clusters $(NB_INSTALL_DIR)/$(DEB_UPSTREAM_VERSION)/etc/netbeans.clusters

	# Install netbeans.import which is a required file when importing settings
	# from an older version of Netbeans (see also #808908)
	$(INSTALL)$(pkg-nb) nbbuild/netbeans/etc/netbeans.import etc
	$(LINK)$(pkg-nb) etc/netbeans.import $(NB_INSTALL_DIR)/$(DEB_UPSTREAM_VERSION)/etc/netbeans.import

	# Install launcher
	$(INSTALL)$(pkg-nb) nbbuild/netbeans/bin/netbeans usr/bin

	# Install desktop file
	$(INSTALL)$(pkg-nb) debian/netbeans.desktop usr/share/applications


override_dh_auto_clean:
	$(call symlink, $(JAVADIR)/$(JH_JAR), javahelp/external/$(NB_JH_JAR))
	$(call symlink, $(JAVADIR)/$(JSEARCH_JAR), apisupport.harness/external/$(NB_JSEARCH_JAR))
	ant -Dpermit.jdk8.builds=true -f nbbuild/build.xml clean
	mh_clean
	# remove all the symlinks to jar files we created
	find . -name "*.jar" -type l -delete
	$(RM) -r nbbuild/external/xhtml1-dtds
	$(RM) nbbuild/nbproject/private/scan-cache-standard.ser
	$(RM) debian/license_accepted
	$(RM) swingapp/src/org/netbeans/modules/swingapp/resources/CRUDShellApp.zip
	$(RM) swingapp/src/org/netbeans/modules/swingapp/resources/BasicShellApp.zip

override_jh_depends:
	# Skipping jh_depends run - since we use symlinks to /usr/share/java then
	# jh_depends gets it wrong.

get-orig-source:
	uscan --verbose --download-current-version --force-download