1 # -*- Makefile -*- rules commonly shared among X consolidation open source dirs |
1 # -*- Makefile -*- rules commonly shared among X consolidation open source dirs |
2 # |
2 # |
3 # Copyright 2009 Sun Microsystems, Inc. All Rights Reserved. |
3 # Copyright 2009 Sun Microsystems, Inc. All rights reserved. |
4 # Use subject to license terms. |
4 # Use is subject to license terms. |
5 # |
5 # |
6 # Permission is hereby granted, free of charge, to any person obtaining a |
6 # Permission is hereby granted, free of charge, to any person obtaining a |
7 # copy of this software and associated documentation files (the |
7 # copy of this software and associated documentation files (the |
8 # "Software"), to deal in the Software without restriction, including |
8 # "Software"), to deal in the Software without restriction, including |
9 # without limitation the rights to use, copy, modify, merge, publish, |
9 # without limitation the rights to use, copy, modify, merge, publish, |
26 # Except as contained in this notice, the name of a copyright holder |
26 # Except as contained in this notice, the name of a copyright holder |
27 # shall not be used in advertising or otherwise to promote the sale, use |
27 # shall not be used in advertising or otherwise to promote the sale, use |
28 # or other dealings in this Software without prior written authorization |
28 # or other dealings in this Software without prior written authorization |
29 # of the copyright holder. |
29 # of the copyright holder. |
30 # |
30 # |
31 # @(#)Makefile.inc 1.99 09/05/15 |
31 # ident "@(#)Makefile.inc 1.100 09/10/13 SMI" |
32 # |
32 # |
33 |
33 |
34 ### Default rules |
34 ### Default rules |
35 |
35 |
36 # Which compiler to use to build module |
36 # Which compiler to use to build module |
43 MODTYPE_MAKE_DEFAULT = $(MODTYPE_MAKE_SET:yes=$(POUND_SIGN)) |
43 MODTYPE_MAKE_DEFAULT = $(MODTYPE_MAKE_SET:yes=$(POUND_SIGN)) |
44 $(MODTYPE_MAKE_DEFAULT) MODTYPE_MAKE = $(MAKE) |
44 $(MODTYPE_MAKE_DEFAULT) MODTYPE_MAKE = $(MAKE) |
45 MODULE_MAKE_DEFAULT = $(MODULE_MAKE_SET:yes=$(POUND_SIGN)) |
45 MODULE_MAKE_DEFAULT = $(MODULE_MAKE_SET:yes=$(POUND_SIGN)) |
46 $(MODULE_MAKE_DEFAULT) MODULE_MAKE = $(MODTYPE_MAKE) |
46 $(MODULE_MAKE_DEFAULT) MODULE_MAKE = $(MODTYPE_MAKE) |
47 |
47 |
|
48 # Enable parallel make for gmake built modules too |
|
49 #MAKEFLAGS += -j $(DMAKE_MAX_JOBS) |
|
50 |
48 # Where to install files |
51 # Where to install files |
49 MODTYPE_PREFIX_DEFAULT = $(MODTYPE_PREFIX_SET:yes=$(POUND_SIGN)) |
52 MODTYPE_PREFIX_DEFAULT = $(MODTYPE_PREFIX_SET:yes=$(POUND_SIGN)) |
50 $(MODULE_PREFIX_DEFAULT) MODTYPE_PREFIX=$(X11_DIR) |
53 $(MODULE_PREFIX_DEFAULT) MODTYPE_PREFIX=$(X11_DIR) |
51 MODULE_PREFIX_DEFAULT = $(MODULE_PREFIX_SET:yes=$(POUND_SIGN)) |
54 MODULE_PREFIX_DEFAULT = $(MODULE_PREFIX_SET:yes=$(POUND_SIGN)) |
52 $(MODULE_PREFIX_DEFAULT) MODULE_PREFIX=$(MODTYPE_PREFIX) |
55 $(MODULE_PREFIX_DEFAULT) MODULE_PREFIX=$(MODTYPE_PREFIX) |
104 $(INSTALL_TARGETS_DEFAULT) INSTALL_TARGETS=default_install \ |
107 $(INSTALL_TARGETS_DEFAULT) INSTALL_TARGETS=default_install \ |
105 $(MODTYPE_ADD_INSTALL_TARGETS) \ |
108 $(MODTYPE_ADD_INSTALL_TARGETS) \ |
106 $(MODULE_ADD_INSTALL_TARGETS) |
109 $(MODULE_ADD_INSTALL_TARGETS) |
107 |
110 |
108 # Additional flags to pass to make in 32-bit & 64-bit builds |
111 # Additional flags to pass to make in 32-bit & 64-bit builds |
109 BUILD_32_FLAGS= BUILD_DIR=$(BUILD_DIR_32) ARCH_FLAGS="$(ARCH32_FLAGS)" \ |
112 BUILD_DIR_32_FLAGS= BUILD_DIR=$(BUILD_DIR_32) BUILD_TYPE=32 |
110 BUILD_TYPE=32 $(MODTYPE_BUILD_32_FLAGS) $(MODULE_BUILD_32_FLAGS) |
113 |
111 |
114 BUILD_DIR_64_FLAGS= BUILD_DIR=$(BUILD_DIR_64) BUILD_TYPE=64 \ |
112 BUILD_64_FLAGS= BUILD_DIR=$(BUILD_DIR_64) ARCH_FLAGS="$(ARCH64_FLAGS)" \ |
115 LIBSUBDIR=/$(SUBDIR64) ARCHLIBSUBDIR=/$(SUBDIR64) |
113 BUILD_TYPE=64 $(MODTYPE_BUILD_64_FLAGS) $(MODULE_BUILD_64_FLAGS) |
116 |
|
117 BUILD_32_FLAGS= $(BUILD_DIR_32_FLAGS) ARCH_FLAGS="$(ARCH32_FLAGS)" \ |
|
118 $(MODTYPE_BUILD_32_FLAGS) $(MODULE_BUILD_32_FLAGS) |
|
119 |
|
120 BUILD_64_FLAGS= $(BUILD_DIR_64_FLAGS) ARCH_FLAGS="$(ARCH64_FLAGS)" \ |
|
121 $(MODTYPE_BUILD_64_FLAGS) $(MODULE_BUILD_64_FLAGS) |
114 |
122 |
115 all: $(BUILD_TYPES:%=source_%) $(BUILD_TYPES:%=build_%) |
123 all: $(BUILD_TYPES:%=source_%) $(BUILD_TYPES:%=build_%) |
116 all_32: source_32 configure_32 build_32 |
124 all_32: source_32 configure_32 build_32 |
117 all_64: source_64 configure_64 build_64 |
125 all_64: source_64 configure_64 build_64 |
118 |
126 |
128 |
136 |
129 source_gen:: $(SOURCE_TARGETS) |
137 source_gen:: $(SOURCE_TARGETS) |
130 |
138 |
131 source_32: $(SOURCE_DIR_32)/$(UNPACK_FILE) |
139 source_32: $(SOURCE_DIR_32)/$(UNPACK_FILE) |
132 $(SOURCE_DIR_32)/$(UNPACK_FILE): |
140 $(SOURCE_DIR_32)/$(UNPACK_FILE): |
133 $(MAKE) $(MAKEFLAGS) BUILD_DIR=$(BUILD_DIR_32) source_gen |
141 $(MAKE) $(MAKEFLAGS) $(BUILD_DIR_32_FLAGS) source_gen |
134 |
142 |
135 source_64: $(SOURCE_DIR_64)/$(UNPACK_FILE) |
143 source_64: $(SOURCE_DIR_64)/$(UNPACK_FILE) |
136 $(SOURCE_DIR_64)/$(UNPACK_FILE): |
144 $(SOURCE_DIR_64)/$(UNPACK_FILE): |
137 $(MAKE) $(MAKEFLAGS) BUILD_DIR=$(BUILD_DIR_64) source_gen |
145 $(MAKE) $(MAKEFLAGS) $(BUILD_DIR_64_FLAGS) source_gen |
138 |
146 |
139 configure: $(BUILD_TYPES:%=configure_%) |
147 configure: $(BUILD_TYPES:%=configure_%) |
140 |
148 |
141 configure_gen: $(CONFIGURE_TARGETS) |
149 configure_gen: $(CONFIGURE_TARGETS) |
142 |
150 |
143 configure_32:: |
151 configure_32:: source_32 |
144 $(MAKE) $(MAKEFLAGS) $(BUILD_32_FLAGS) configure_gen |
152 $(MAKE) $(MAKEFLAGS) $(BUILD_32_FLAGS) configure_gen |
145 |
153 |
146 configure_64:: |
154 configure_64:: source_64 |
147 $(MAKE) $(MAKEFLAGS) LIBSUBDIR=/$(SUBDIR64) ARCHLIBSUBDIR=/$(SUBDIR64) $(BUILD_64_FLAGS) configure_gen |
155 $(MAKE) $(MAKEFLAGS) $(BUILD_64_FLAGS) configure_gen |
148 |
156 |
149 build: $(BUILD_TYPES:%=build_%) |
157 build: $(BUILD_TYPES:%=build_%) |
150 |
158 |
151 build_gen: $(BUILD_TARGETS) |
159 build_gen: $(BUILD_TARGETS) |
152 |
160 |
153 build_32:: |
161 build_32:: configure_32 |
154 $(MAKE) $(MAKEFLAGS) $(BUILD_32_FLAGS) build_gen |
162 $(MAKE) $(MAKEFLAGS) $(BUILD_32_FLAGS) build_gen |
155 |
163 |
156 build_64:: |
164 build_64:: configure_64 |
157 $(MAKE) $(MAKEFLAGS) LIBSUBDIR=/$(SUBDIR64) ARCHLIBSUBDIR=/$(SUBDIR64) $(BUILD_64_FLAGS) build_gen |
165 $(MAKE) $(MAKEFLAGS) $(BUILD_64_FLAGS) build_gen |
158 |
166 |
159 install: $(BUILD_TYPES:%=install_%) |
167 install: $(BUILD_TYPES:%=install_%) |
160 |
168 |
161 install_gen:: $(INSTALL_TARGETS) install_license install_pkgconfig_uninstalled |
169 install_gen:: $(INSTALL_TARGETS) install_license install_pkgconfig_uninstalled |
162 |
170 |
163 install_32:: build_32 |
171 install_32:: build_32 |
164 $(MAKE) $(MAKEFLAGS) $(BUILD_32_FLAGS) install_gen |
172 $(MAKE) $(MAKEFLAGS) $(BUILD_32_FLAGS) install_gen |
165 |
173 |
166 install_64:: build_64 |
174 install_64:: build_64 |
167 $(MAKE) $(MAKEFLAGS) LIBSUBDIR=/64 ARCHLIBSUBDIR=/$(SUBDIR64) $(BUILD_64_FLAGS) install_gen |
175 $(MAKE) $(MAKEFLAGS) $(BUILD_64_FLAGS) install_gen |
168 |
176 |
169 DEBUG_BUILD_FLAGS = BUILD_DEBUG=yes |
177 DEBUG_BUILD_FLAGS = BUILD_DEBUG=yes |
170 |
178 |
171 debug-build: debug |
179 debug-build: debug |
172 debug-build_32: debug_32 |
180 debug-build_32: debug_32 |
311 CONFIGURE_DEPS = $(UNPACK_TARGET) \ |
319 CONFIGURE_DEPS = $(UNPACK_TARGET) \ |
312 $(MODTYPE_CONFIGURE_DEPS) $(MODULE_CONFIGURE_DEPS) |
320 $(MODTYPE_CONFIGURE_DEPS) $(MODULE_CONFIGURE_DEPS) |
313 |
321 |
314 # Command line options to GNU autoconf configure script |
322 # Command line options to GNU autoconf configure script |
315 DEFAULT_CONFIG_OPTS = --prefix=$(MODULE_PREFIX) \ |
323 DEFAULT_CONFIG_OPTS = --prefix=$(MODULE_PREFIX) \ |
316 --mandir='$${prefix}/share/man' --localstatedir=/var \ |
324 --mandir='$${prefix}/share/man' --localstatedir=/var |
317 --disable-libtool-lock |
|
318 |
325 |
319 CONFIG_OPTS = $(DEFAULT_CONFIG_OPTS) \ |
326 CONFIG_OPTS = $(DEFAULT_CONFIG_OPTS) \ |
320 $(MODTYPE_CONFIG_OPTS) $(MODULE_CONFIG_OPTS) |
327 $(MODTYPE_CONFIG_OPTS) $(MODULE_CONFIG_OPTS) |
321 |
328 |
322 # Environment variable options to GNU autoconf configure script |
329 # Environment variable options to GNU autoconf configure script |
390 ### Default rules for common build pattern |
397 ### Default rules for common build pattern |
391 |
398 |
392 LD_OPTIONS = -L$(PROTODIR)$(X11_DIR)/lib$(LIBSUBDIR) \ |
399 LD_OPTIONS = -L$(PROTODIR)$(X11_DIR)/lib$(LIBSUBDIR) \ |
393 $(MODTYPE_LD_OPTIONS) $(MODULE_LD_OPTIONS) |
400 $(MODTYPE_LD_OPTIONS) $(MODULE_LD_OPTIONS) |
394 |
401 |
|
402 # MKDIRPROG - Workaround parallel build race condition |
|
403 # in older upstream packaged install-sh |
|
404 |
395 BUILD_ENV = LD_OPTIONS='$(LD_OPTIONS)' \ |
405 BUILD_ENV = LD_OPTIONS='$(LD_OPTIONS)' \ |
396 PROTODIR='$(PROTODIR)' \ |
406 PROTODIR='$(PROTODIR)' \ |
|
407 MAKE='$(MODULE_MAKE)' \ |
|
408 MKDIRPROG='mkdir -p' \ |
397 $(MODTYPE_BUILD_ENV) $(MODULE_BUILD_ENV) |
409 $(MODTYPE_BUILD_ENV) $(MODULE_BUILD_ENV) |
398 |
410 |
399 DEFAULT_BUILD_MAKEFLAGS=$(MODTYPE_MAKEFLAGS) $(MODULE_MAKEFLAGS) \ |
411 DEFAULT_BUILD_MAKEFLAGS=$(MODTYPE_MAKEFLAGS) $(MODULE_MAKEFLAGS) \ |
400 $(MODTYPE_BUILD_MAKEFLAGS) $(MODULE_BUILD_MAKEFLAGS) |
412 $(MODTYPE_BUILD_MAKEFLAGS) $(MODULE_BUILD_MAKEFLAGS) |
401 |
413 |
404 $(BUILD_ENV) $(MODULE_MAKE) $(MAKEFLAGS) $(DEFAULT_BUILD_MAKEFLAGS)) |
416 $(BUILD_ENV) $(MODULE_MAKE) $(MAKEFLAGS) $(DEFAULT_BUILD_MAKEFLAGS)) |
405 |
417 |
406 print_default_build_flags: |
418 print_default_build_flags: |
407 @print "BUILD_ENV='$(BUILD_ENV)'" ; \ |
419 @print "BUILD_ENV='$(BUILD_ENV)'" ; \ |
408 print "MAKE='$(MODULE_MAKE)'" ; \ |
420 print "MAKE='$(MODULE_MAKE)'" ; \ |
409 print "MAKE_FLAGS='$(MAKEFLAGS) $(DEFAULT_BUILD_MAKEFLAGS)'" |
421 print "MAKEFLAGS='$(MAKEFLAGS) $(DEFAULT_BUILD_MAKEFLAGS)'" |
410 |
422 |
411 build-in-subdir: |
423 build-in-subdir: |
412 (cd $(subdir) ; \ |
424 (cd $(subdir) ; \ |
413 $(BUILD_ENV) $(MODULE_MAKE) $(MAKEFLAGS) $(DEFAULT_BUILD_MAKEFLAGS) \ |
425 $(BUILD_ENV) $(MODULE_MAKE) $(MAKEFLAGS) $(DEFAULT_BUILD_MAKEFLAGS) \ |
414 $(subdir_cmd) ) |
426 $(subdir_cmd) ) |
441 -e 'BEGIN {use Cwd; $$protodir=Cwd::realpath("$(PROTODIR)");}' \ |
453 -e 'BEGIN {use Cwd; $$protodir=Cwd::realpath("$(PROTODIR)");}' \ |
442 -e 's|(-[LI]\s*)\$$|$$1$$protodir\$$|g;' \ |
454 -e 's|(-[LI]\s*)\$$|$$1$$protodir\$$|g;' \ |
443 -e 's|^sdkdir=|sdkdir=$$protodir|g;' \ |
455 -e 's|^sdkdir=|sdkdir=$$protodir|g;' \ |
444 -e 's|$$protodir\$${sdkdir}|\$${sdkdir}|g;' |
456 -e 's|$$protodir\$${sdkdir}|\$${sdkdir}|g;' |
445 |
457 |
446 install_pkgconfig_uninstalled: |
458 install_pkgconfig_uninstalled: $(INSTALL_TARGETS) |
447 @ if [[ ! -z "$(FIX_PC_FILES)" ]] ; then \ |
459 @ if [[ ! -z "$(FIX_PC_FILES)" ]] ; then \ |
448 cd $(SOURCE_DIR) ; \ |
460 cd $(SOURCE_DIR) ; \ |
449 for pcin in $(FIX_PC_FILES:.in=) ; do \ |
461 for pcin in $(FIX_PC_FILES:.in=) ; do \ |
450 pc=$${pcin%%+(.pc|.in)} ; \ |
462 pc=$${pcin%%+(.pc|.in)} ; \ |
451 (PS4="" ; set -x ; \ |
463 (PS4="" ; set -x ; \ |
460 |
472 |
461 $(BUILD_DEBUG:yes=) DEBUG_ELF_COMMENTS=(DEBUG) |
473 $(BUILD_DEBUG:yes=) DEBUG_ELF_COMMENTS=(DEBUG) |
462 $(BUILD_DEBUG:yes=$(POUND_SIGN)) DEBUG_ELF_COMMENTS= |
474 $(BUILD_DEBUG:yes=$(POUND_SIGN)) DEBUG_ELF_COMMENTS= |
463 ELF_COMMENTS += $(DEBUG_ELF_COMMENTS) |
475 ELF_COMMENTS += $(DEBUG_ELF_COMMENTS) |
464 |
476 |
465 set-elf-comments: |
477 set-elf-comments: $(BUILD_TARGETS:set-elf-comments=) |
466 $(TOP)/common/set-elf-comments.pl -B $(TOP)/../packages/pkgversion \ |
478 $(TOP)/common/set-elf-comments.pl -B $(TOP)/../packages/pkgversion \ |
467 -M '$(ELF_COMMENTS)' $(SOURCE_DIR) |
479 -M '$(ELF_COMMENTS)' $(SOURCE_DIR) |
468 |
480 |
469 |
481 |
470 ### Other tools/dependencies needed to build |
482 ### Other tools/dependencies needed to build |