aboutsummaryrefslogtreecommitdiff
path: root/generate/unix/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'generate/unix/Makefile')
-rw-r--r--generate/unix/Makefile98
1 files changed, 82 insertions, 16 deletions
diff --git a/generate/unix/Makefile b/generate/unix/Makefile
index e75523c26bb7..34c61fd81133 100644
--- a/generate/unix/Makefile
+++ b/generate/unix/Makefile
@@ -12,29 +12,95 @@
#
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 $@; make; ls -al $@
+ @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 d in ${PROGS}; do \
- (cd $$d; \
- if [ $$? -ne 0 ]; then \
- echo "Bad element of PROGS: <$$d>"; \
- else \
- pwd; make clean; \
- fi); \
- done
+ @for toolname in ${PROGS}; do \
+ (cd $$toolname; \
+ pwd; \
+ make BITS=32 clean; \
+ make BITS=64 clean; \
+ rmdir obj32; \
+ rmdir obj64; \
+ ); \
+ done;
+#
+# Install all tools, either 32-bit or 64-bit as appropriate for the host OS
+#
install: FORCE
- @for d in ${PROGS}; do \
- (cd $$d; \
- if [ $$? -ne 0 ]; then \
- echo "Bad element of PROGS: <$$d>"; \
+ @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 \
- pwd; make install; \
- fi); \
- done
+ 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:
+