xref: /haiku/build/jam/MiscRules (revision 2ae568931fcac7deb9f1e6ff4e47213fbfe4029b)
1
2rule SetupObjectsDir
3{
4	local relPath = [ FDirName $(SUBDIR_TOKENS[2-]) ] ;
5	COMMON_PLATFORM_LOCATE_TARGET =
6		[ FDirName $(HAIKU_COMMON_PLATFORM_OBJECT_DIR) $(relPath) ] ;
7
8	local var ;
9	for var in COMMON_ARCH COMMON_DEBUG DEBUG_$(HAIKU_DEBUG_LEVELS) {
10		HOST_$(var)_LOCATE_TARGET
11			= [ FDirName $(HOST_$(var)_OBJECT_DIR) $(relPath) ] ;
12		TARGET_$(var)_LOCATE_TARGET
13			= [ FDirName $(TARGET_$(var)_OBJECT_DIR) $(relPath) ] ;
14	}
15
16	LOCATE_TARGET = $(COMMON_PLATFORM_LOCATE_TARGET) ;
17	LOCATE_SOURCE = $(LOCATE_TARGET) ;
18	SEARCH_SOURCE = $(SUBDIR) $(LOCATE_SOURCE)
19		$(HOST_COMMON_DEBUG_LOCATE_TARGET)		# Also add the standard output
20		$(TARGET_COMMON_DEBUG_LOCATE_TARGET)	# dirs for generated sources.
21	;
22}
23
24rule SubIncludeGPL
25{
26	# SubInclude rule that can be used to conditionally include GPL licensed
27	# add-ons
28	if $(INCLUDE_GPL_ADDONS) = 1 {
29		SubInclude $(1) ;
30	}
31}
32
33rule MakeLocateCommonPlatform
34{
35	MakeLocate $(1) : $(COMMON_PLATFORM_LOCATE_TARGET) ;
36}
37
38rule MakeLocatePlatform
39{
40	local files = $(1) ;
41	local file ;
42	for file in $(files) {
43		if [ on $(file) return $(PLATFORM) ] = host {
44			MakeLocate $(file) : $(HOST_COMMON_ARCH_LOCATE_TARGET) ;
45		} else {
46			MakeLocate $(file) : $(TARGET_COMMON_ARCH_LOCATE_TARGET) ;
47		}
48	}
49}
50
51rule MakeLocateArch
52{
53	local files = $(1) ;
54	local file ;
55	for file in $(files) {
56		if [ on $(file) return $(PLATFORM) ] = host {
57			MakeLocate $(file) : $(HOST_COMMON_DEBUG_LOCATE_TARGET) ;
58		} else {
59			MakeLocate $(file) : $(TARGET_COMMON_DEBUG_LOCATE_TARGET) ;
60		}
61	}
62}
63
64rule MakeLocateDebug
65{
66	local files = $(1) ;
67	local file ;
68	for file in $(files) {
69		on $(file) {
70			if $(PLATFORM) = host {
71				MakeLocate $(file) : $(HOST_DEBUG_$(DEBUG)_LOCATE_TARGET) ;
72			} else {
73				MakeLocate $(file) : $(TARGET_DEBUG_$(DEBUG)_LOCATE_TARGET) ;
74			}
75		}
76	}
77}
78
79