1#
2# Common make for acpica tools and utilities
3#
4
5#
6# Get the OS machine architecture. Anything with a "64" in the returned
7# string will be treated as a 64-bit OS. Otherwise, the default is 32-bit.
8#
9ifeq ($(HOST), _FreeBSD)
10HARDWARE_NAME := $(shell uname -p)
11else
12HARDWARE_NAME := $(shell uname -m)
13endif
14
15#
16# Main rule will only generate versions that are appropriate for the running
17# OS, either 64-bit or 32-bit.
18#
19all:	$(PROGS)
20$(PROGS): FORCE
21	@cd $(BUILD_DIRECTORY_PATH)/$@; \
22	mkdir -p obj; \
23	$(MAKE) || exit "$$?"; \
24	if [ $(findstring 64,$(HARDWARE_NAME)) ]; then \
25		echo "64-bit version of $@:"; \
26	else \
27		echo "32-bit version of $@:"; \
28	fi; \
29	ls -al ../bin/$@; \
30	echo "";
31
32#
33# Simple clean removes all .obj files, but leaves the executables
34# in the local bin directory
35#
36clean:	FORCE
37	@for toolname in $(PROGS); do \
38		(cd $(BUILD_DIRECTORY_PATH)/$$toolname; \
39		if [ -d "obj" ] ; then \
40			echo "Removing $$toolname:"; \
41			pwd; \
42			$(MAKE) clean; \
43			rmdir obj; \
44			echo ""; \
45		fi; \
46		); \
47	done;
48
49#
50# Very clean removes all executables and the local bin directory
51#
52veryclean:	FORCE
53	@for toolname in $(PROGS); do \
54		(cd $(BUILD_DIRECTORY_PATH)/$$toolname; \
55		if [ -d "obj" ] ; then \
56			echo "Removing $$toolname:"; \
57			pwd; \
58			$(MAKE) clean; \
59			rmdir obj; \
60			echo ""; \
61		fi; \
62		); \
63		if [ -e "$(BUILD_DIRECTORY_PATH)/bin/$$toolname" ] ; then \
64			rm $(BUILD_DIRECTORY_PATH)/bin/$$toolname; \
65		fi; \
66	done; \
67	if [ -d "bin" ] ; then \
68		rmdir bin; \
69	fi;
70
71#
72# Install all tools, either 32-bit or 64-bit as appropriate for the host OS
73#
74install:	FORCE
75	@for toolname in $(PROGS); do \
76		(cd $(BUILD_DIRECTORY_PATH)/$$toolname; \
77		pwd; \
78		$(MAKE) PROG=$$toolname install; \
79		if [ $(findstring 64,$(HARDWARE_NAME)) ]; then \
80			echo "Installed 64-bit version of $$toolname"; \
81		else \
82			echo "Installed 32-bit version of $$toolname"; \
83		fi; \
84		echo ""; \
85		); \
86	done;
87
88machine:	FORCE
89	@echo "Machine architecture: $(HARDWARE_NAME), $(XBITS)";
90	@echo "Findstring: $(findstring 64, $(HARDWARE_NAME))";
91
92FORCE:
93
94