annotate common/makefiles/IdlCompilation.gmk @ 492:e64f2cb57d05

8000992: Update new build-infra makefiles Summary: Build-infra project integration. Multiple authors on this work: erikj and ihse primarily, also changes from ohair, tbell, and dholmes. Special credit to ohstrom for his smartjavac work. Reviewed-by: erikj, ihse, dholmes, tbell
author ohair
date Fri, 26 Oct 2012 14:29:57 -0700
parents 3156dff953b1
children d2c1f80118de
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
423
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
1 #
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
2 # Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
4 #
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
5 # This code is free software; you can redistribute it and/or modify it
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
6 # under the terms of the GNU General Public License version 2 only, as
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
7 # published by the Free Software Foundation. Oracle designates this
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
8 # particular file as subject to the "Classpath" exception as provided
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
9 # by Oracle in the LICENSE file that accompanied this code.
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
10 #
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
11 # This code is distributed in the hope that it will be useful, but WITHOUT
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
13 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
14 # version 2 for more details (a copy is included in the LICENSE file that
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
15 # accompanied this code).
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
16 #
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
17 # You should have received a copy of the GNU General Public License version
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
18 # 2 along with this work; if not, write to the Free Software Foundation,
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
20 #
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
22 # or visit www.oracle.com if you need additional information or have any
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
23 # questions.
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
24 #
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
25
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
26 PREFIXES=-pkgPrefix CORBA org.omg \
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
27 -pkgPrefix CosNaming org.omg \
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
28 -pkgPrefix CosTransactions org.omg \
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
29 -pkgPrefix CosTSInteroperation org.omg \
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
30 -pkgPrefix DynamicAny org.omg \
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
31 -pkgPrefix Dynamic org.omg \
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
32 -pkgPrefix IOP org.omg \
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
33 -pkgPrefix Messaging org.omg \
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
34 -pkgPrefix PortableInterceptor org.omg \
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
35 -pkgPrefix PortableServer org.omg \
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
36 -pkgPrefix activation com.sun.corba.se.spi \
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
37 -pkgPrefix GIOP com.sun.corba.se \
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
38 -pkgPrefix PortableActivationIDL com.sun.corba.se \
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
39 -pkgPrefix messages com.sun.corba.se
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
40
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
41 define add_idl_package
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
42 # param 1 = MYPACKAGE
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
43 # param 2 = src root
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
44 # param 3 = gensrc root
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
45 # param 4 = source idl to compile
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
46 # param 5 = target idl package
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
47 # param 6 = delete these files that were output from the idlj
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
48 # param 7 = idls that match these patterns should be compiled with -oldImplBase
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
49 # param 8 = the idlj command
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
50 # Save the generated java files to a temporary directory so
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
51 # that we can find them and create proper dependencies.
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
52 # After that, we move them to the real gensrc target dir.
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
53 $4_TMPDIR:=tmp___$(subst /,_,$(patsubst $2/%,%,$4))___
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
54 ifneq ($$(filter $7,$4),)
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
55 $4_OLDIMPLBASE:=-oldImplBase
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
56 $4_OLDIMPLBASE_MSG:=with -oldImplBase
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
57 endif
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
58 $5 : $4
457
3156dff953b1 7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents: 456
diff changeset
59 $(MKDIR) -p $3/$$($4_TMPDIR)
3156dff953b1 7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents: 456
diff changeset
60 $(RM) -rf $3/$$($4_TMPDIR)
3156dff953b1 7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents: 456
diff changeset
61 $(MKDIR) -p $(dir $5)
492
e64f2cb57d05 8000992: Update new build-infra makefiles
ohair
parents: 457
diff changeset
62 $(ECHO) $(LOG_INFO) Compiling IDL $(patsubst $2/%,%,$4)
423
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
63 $8 -td $3/$$($4_TMPDIR) \
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
64 -i $2/org/omg/CORBA \
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
65 -i $2/org/omg/PortableInterceptor \
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
66 -i $2/org/omg/PortableServer \
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
67 -D CORBA3 -corba 3.0 \
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
68 -fall \
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
69 $$($4_OLDIMPLBASE) \
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
70 $(PREFIXES) \
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
71 $4
457
3156dff953b1 7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents: 456
diff changeset
72 $(RM) -f $$(addprefix $3/$$($4_TMPDIR)/,$6)
3156dff953b1 7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents: 456
diff changeset
73 $(CP) -rp $3/$$($4_TMPDIR)/* $3
3156dff953b1 7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents: 456
diff changeset
74 ($(CD) $3/$$($4_TMPDIR); find . -type f | sed 's!\./!$3/!g' | awk '{ print $$$$1 ": $4" }' > $5)
3156dff953b1 7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents: 456
diff changeset
75 $(RM) -rf $3/$$($4_TMPDIR)
423
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
76 endef
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
77
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
78 define SetupIdlCompilation
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
79 # param 1 is for example BUILD_IDLS
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
80 # param 2,3,4,5,6,7,8 are named args.
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
81 # IDLJ,SRC,BIN,INCLUDES,EXCLUDES,OLDIMPLBASES,DELETES
492
e64f2cb57d05 8000992: Update new build-infra makefiles
ohair
parents: 457
diff changeset
82 $(foreach i,2 3 4 5 6 7 8 9 10 11 12 13 14 15, $(if $($i),$1_$(strip $($i)))$(NEWLINE))
e64f2cb57d05 8000992: Update new build-infra makefiles
ohair
parents: 457
diff changeset
83 $(call LogSetupMacroEntry,SetupIdlCompilation($1),$2,$3,$4,$5,$6,$7,$8,$9,$(10),$(11),$(12),$(13),$(14),$(15))
e64f2cb57d05 8000992: Update new build-infra makefiles
ohair
parents: 457
diff changeset
84 $(if $(16),$(error Internal makefile error: Too many arguments to SetupIdlCompilation, please update IdlCompilation.gmk))
456
c8d320b48626 7181504: Update of latest build-infra Makefiles
erikj
parents: 423
diff changeset
85
423
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
86 # Remove any relative addressing in the paths.
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
87 $1_SRC := $$(abspath $$($1_SRC))
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
88 $1_BIN := $$(abspath $$($1_BIN))
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
89 # Find all existing java files and existing class files.
457
3156dff953b1 7182051: Update of latest build-infra Makefiles (missing files)
erikj
parents: 456
diff changeset
90 $$(shell $(MKDIR) -p $$($1_SRC) $$($1_BIN))
423
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
91 $1_SRCS := $$(shell find $$($1_SRC) -name "*.idl")
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
92 $1_BINS := $$(shell find $$($1_BIN) -name "*.java")
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
93 # Prepend the source/bin path to the filter expressions.
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
94 $1_SRC_INCLUDES := $$(addprefix $$($1_SRC)/,$$($1_INCLUDES))
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
95 $1_SRC_EXCLUDES := $$(addprefix $$($1_SRC)/,$$($1_EXCLUDES))
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
96 $1_BIN_INCLUDES := $$(addprefix $$($1_BIN)/,$$($1_INCLUDES))
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
97 $1_BIN_EXCLUDES := $$(addprefix $$($1_BIN)/,$$($1_EXCLUDES))
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
98 $1_OLDIMPLBASES := $$(addprefix $$($1_SRC)/,$$($1_OLDIMPLBASES))
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
99 # Now remove unwanted java/class files.
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
100 $1_SRCS := $$(filter $$($1_SRC_INCLUDES),$$($1_SRCS))
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
101 $1_SRCS := $$(filter-out $$($1_SRC_EXCLUDES),$$($1_SRCS))
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
102 $1_BINS := $$(filter $$($1_BIN_INCLUDES),$$($1_BINS))
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
103 $1_BINS := $$(filter-out $$($1_BIN_EXCLUDES),$$($1_BINS))
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
104 $1 := $$(sort $$(patsubst $$($1_SRC)/%.idl,$$($1_BIN)/%.idl.d,$$($1_SRCS)))
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
105 # Now create the dependencies for each idl target.
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
106 $$(foreach p,$$($1),$$(eval $$(call add_idl_package,$1,$$($1_SRC),$$($1_BIN),$$(patsubst $$($1_BIN)/%.idl.d,$$($1_SRC)/%.idl,$$p),$$p,$$($1_DELETES),$$($1_OLDIMPLBASES),$$($1_IDLJ))))
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
107 endef
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
108
e1830598f0b7 7074397: Build infrastructure changes (makefile re-write)
ohair
parents:
diff changeset
109 .SUFFIXES: .java .class .package