aboutsummaryrefslogtreecommitdiff
path: root/generate/unix/Makefile
blob: 071b17da1959eb5edb5d2875551b2abedc047fb5 (plain) (blame)
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
#
# Common make for acpica tools and utilities
#

#
# Note: This makefile is intended to be used from within the native
# ACPICA directory structure, from under generate/unix. It specifically
# places all object files in a generate/unix subdirectory, not within
# the various ACPICA source directories. This prevents collisions
# between different compilations of the same source file with different
# compile options, and prevents pollution of the source code.
#
include Makefile.config

#
# Get the OS machine architecture. Anything with a "64" in the returned
# string will be treated as a 64-bit OS. Otherwise, the default is 32-bit.
#
HARDWARE_NAME := $(shell uname -m)

#
# Main rule will only generate versions that are appropriate for the running
# OS, either 64-bit or 32-bit.
#
all:	${PROGS}
${PROGS}: FORCE
	@cd $@; \
	if [ $(findstring 64,$(HARDWARE_NAME)) ]; then \
		mkdir -p obj64; \
		make BITS=64; \
		echo "64-bit version of $@:"; \
		ls -al obj64/$@; \
	else \
		mkdir -p obj32; \
		make BITS=32; \
		echo "32-bit version of $@:"; \
		ls -al obj32/$@; \
	fi;

#
# Make 32-bit and 64-bit versions of all the tools
#
both:	32 64

#
# Make only 32-bit versions of all the tools
#
32:	FORCE
	@for toolname in ${PROGS}; do \
		(cd $$toolname; \
		pwd; \
		mkdir -p obj32; \
		make BITS=32; \
		echo "32-bit version of $$toolname:"; \
		ls -al obj32/$$toolname \
		); \
	done;

#
# Make only 64-bit versions of all the tools
#
64:	FORCE
	@for toolname in ${PROGS}; do \
		(cd $$toolname; \
		pwd; \
		mkdir -p obj64; \
		make BITS=64; \
		echo "64-bit version of $$toolname:"; \
		ls -al obj64/$$toolname \
		); \
	done;

clean:	FORCE
	@for toolname in ${PROGS}; do \
		(cd $$toolname; \
		pwd; \
		if [ -d "obj32" ] ; then \
			make BITS=32 clean; \
			rmdir obj32; \
		fi; \
		if [ -d "obj64" ] ; then \
			make BITS=64 clean; \
			rmdir obj64; \
		fi; \
		); \
	done;

#
# Install all tools, either 32-bit or 64-bit as appropriate for the host OS
#
install:	FORCE
	@for toolname in ${PROGS}; do \
		(cd $$toolname; \
		pwd; \
		if [ $(findstring 64,$(HARDWARE_NAME)) ]; then \
			make BITS=64 install; \
			echo "Installed 64-bit version of $$toolname"; \
		else \
			make BITS=32 install; \
			echo "Installed 32-bit version of $$toolname"; \
		fi; \
		); \
	done;

machine:	FORCE
	@echo "Machine architecture: $(HARDWARE_NAME), $(XBITS)";
	@echo "Findstring: $(findstring 64, $(HARDWARE_NAME))";

FORCE: