diff options
Diffstat (limited to 'generate/unix/Makefile')
-rw-r--r-- | generate/unix/Makefile | 98 |
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: + |