Cleaner makefile execution, use 'make Q=' if you want to see full lines

This commit is contained in:
Philippe Teuwen 2019-06-02 00:25:25 +02:00
commit 8c0cd4cfa2
13 changed files with 253 additions and 145 deletions

View file

@ -1,3 +1,7 @@
# Hide full compilation line:
Q?=@
# To see full command lines, use make Q=
GZIP=gzip GZIP=gzip
# Windows' echo echos its input verbatim, on Posix there is some # Windows' echo echos its input verbatim, on Posix there is some
# amount of shell command line parsing going on. echo "" on # amount of shell command line parsing going on. echo "" on
@ -30,17 +34,23 @@ include common/Makefile.hal
all clean: %: client/% bootrom/% armsrc/% recovery/% mfkey/% nonce2key/% all clean: %: client/% bootrom/% armsrc/% recovery/% mfkey/% nonce2key/%
mfkey/%: FORCE mfkey/%: FORCE
$(MAKE) -C tools/mfkey $(patsubst mfkey/%,%,$@) $(info [*] MAKE $@)
$(Q)$(MAKE) --no-print-directory -C tools/mfkey $(patsubst mfkey/%,%,$@)
nonce2key/%: FORCE nonce2key/%: FORCE
$(MAKE) -C tools/nonce2key $(patsubst nonce2key/%,%,$@) $(info [*] MAKE $@)
$(Q)$(MAKE) --no-print-directory -C tools/nonce2key $(patsubst nonce2key/%,%,$@)
bootrom/%: FORCE cleanifplatformchanged bootrom/%: FORCE cleanifplatformchanged
$(MAKE) -C bootrom $(patsubst bootrom/%,%,$@) $(info [*] MAKE $@)
$(Q)$(MAKE) --no-print-directory -C bootrom $(patsubst bootrom/%,%,$@)
armsrc/%: FORCE cleanifplatformchanged armsrc/%: FORCE cleanifplatformchanged
$(MAKE) -C armsrc $(patsubst armsrc/%,%,$@) $(info [*] MAKE $@)
$(Q)$(MAKE) --no-print-directory -C armsrc $(patsubst armsrc/%,%,$@)
client/%: FORCE client/%: FORCE
$(MAKE) -C client $(patsubst client/%,%,$@) $(info [*] MAKE $@)
$(Q)$(MAKE) --no-print-directory -C client $(patsubst client/%,%,$@)
recovery/%: FORCE cleanifplatformchanged bootrom/% armsrc/% recovery/%: FORCE cleanifplatformchanged bootrom/% armsrc/%
$(MAKE) -C recovery $(patsubst recovery/%,%,$@) $(info [*] MAKE $@)
$(Q)$(MAKE) --no-print-directory -C recovery $(patsubst recovery/%,%,$@)
FORCE: # Dummy target to force remake in the subdirectories, even if files exist (this Makefile doesn't know about the prerequisites) FORCE: # Dummy target to force remake in the subdirectories, even if files exist (this Makefile doesn't know about the prerequisites)
.PHONY: all clean help _test bootrom flash-bootrom os flash-os flash-all recovery client mfkey nounce2key style checks FORCE udev accessrights cleanifplatformchanged .PHONY: all clean help _test bootrom flash-bootrom os flash-os flash-all recovery client mfkey nounce2key style checks FORCE udev accessrights cleanifplatformchanged
@ -67,6 +77,7 @@ help:
@echo "+ checks - Detect various encoding issues in source code" @echo "+ checks - Detect various encoding issues in source code"
@echo @echo
@echo "Possible platforms: try \"make PLATFORM=\" for more info, default is PM3RDV4" @echo "Possible platforms: try \"make PLATFORM=\" for more info, default is PM3RDV4"
@echo "To see full command lines, use make Q="
client: client/all client: client/all
@ -94,18 +105,19 @@ newtarbin:
@touch proxmark3-$(platform)-bin.tar @touch proxmark3-$(platform)-bin.tar
tarbin: newtarbin client/tarbin armsrc/tarbin bootrom/tarbin tarbin: newtarbin client/tarbin armsrc/tarbin bootrom/tarbin
$(GZIP) proxmark3-$(platform)-bin.tar $(info GEN proxmark3-$(platform)-bin.tar)
$(Q)$(GZIP) proxmark3-$(platform)-bin.tar
# detect if there were changes in the platform definitions, requiring a clean # detect if there were changes in the platform definitions, requiring a clean
cleanifplatformchanged: cleanifplatformchanged:
ifeq ($(PLATFORM_CHANGED), true) ifeq ($(PLATFORM_CHANGED), true)
echo "Platform definitions changed, cleaning bootrom/armsrc/recovery first..." $(info [!] Platform definitions changed, cleaning bootrom/armsrc/recovery first...)
$(MAKE) -C bootrom clean $(Q)$(MAKE) --no-print-directory -C bootrom clean
$(MAKE) -C armsrc clean $(Q)$(MAKE) --no-print-directory -C armsrc clean
$(MAKE) -C recovery clean $(Q)$(MAKE) --no-print-directory -C recovery clean
@echo CACHED_PLATFORM=$(PLATFORM) > .Makefile.options.cache $(Q)echo CACHED_PLATFORM=$(PLATFORM) > .Makefile.options.cache
@echo CACHED_PLATFORM_EXTRAS=$(PLATFORM_EXTRAS) >> .Makefile.options.cache $(Q)echo CACHED_PLATFORM_EXTRAS=$(PLATFORM_EXTRAS) >> .Makefile.options.cache
@echo CACHED_PLATFORM_DEFS=$(PLATFORM_DEFS) >> .Makefile.options.cache $(Q)echo CACHED_PLATFORM_DEFS=$(PLATFORM_DEFS) >> .Makefile.options.cache
endif endif
# configure system to ignore PM3 device as a modem (ModemManager blacklist, effective *only* if ModemManager is not using _strict_ policy) # configure system to ignore PM3 device as a modem (ModemManager blacklist, effective *only* if ModemManager is not using _strict_ policy)

View file

@ -1,4 +1,3 @@
# This code is licensed to you under the terms of the GNU GPL, version 2 or, # This code is licensed to you under the terms of the GNU GPL, version 2 or,
# at your option, any later version. See the LICENSE.txt file for the text of # at your option, any later version. See the LICENSE.txt file for the text of
# the license. # the license.
@ -173,53 +172,66 @@ all: $(OBJS)
# version.c should be remade on every time fullimage.stage1.elf should be remade # version.c should be remade on every time fullimage.stage1.elf should be remade
version.c: default_version.c $(OBJDIR)/fpga_version_info.o $(OBJDIR)/fpga_all.o $(THUMBOBJ) $(ARMOBJ) version.c: default_version.c $(OBJDIR)/fpga_version_info.o $(OBJDIR)/fpga_all.o $(THUMBOBJ) $(ARMOBJ)
perl ../tools/mkversion.pl .. > $@ || $(COPY) $^ $@ $(info [-] GEN $@)
$(Q)perl ../tools/mkversion.pl .. > $@ || $(COPY) $^ $@
fpga_version_info.c: $(FPGA_BITSTREAMS) $(FPGA_COMPRESSOR) fpga_version_info.c: $(FPGA_BITSTREAMS) $(FPGA_COMPRESSOR)
$(FPGA_COMPRESSOR) -v $(filter %.bit,$^) $@ $(info [-] GEN $@)
$(Q)$(FPGA_COMPRESSOR) -v $(filter %.bit,$^) $@
$(OBJDIR)/fpga_all.o: $(OBJDIR)/fpga_all.bit.z $(OBJDIR)/fpga_all.o: $(OBJDIR)/fpga_all.bit.z
$(OBJCOPY) -O elf32-littlearm -I binary -B arm --prefix-sections=fpga_all_bit $^ $@ $(info [-] GEN $@)
$(Q)$(OBJCOPY) -O elf32-littlearm -I binary -B arm --prefix-sections=fpga_all_bit $^ $@
$(OBJDIR)/fpga_all.bit.z: $(FPGA_BITSTREAMS) $(FPGA_COMPRESSOR) $(OBJDIR)/fpga_all.bit.z: $(FPGA_BITSTREAMS) $(FPGA_COMPRESSOR)
$(FPGA_COMPRESSOR) $(filter %.bit,$^) $@ $(info [-] GEN $@)
$(Q)$(FPGA_COMPRESSOR) $(filter %.bit,$^) $@
$(FPGA_COMPRESSOR): $(FPGA_COMPRESSOR):
$(MAKE) -C ../client $(notdir $(FPGA_COMPRESSOR)) $(info [*] MAKE $@)
$(Q)$(MAKE) --no-print-directory -C ../client $(notdir $(FPGA_COMPRESSOR))
$(OBJDIR)/fullimage.stage1.elf: $(VERSIONOBJ) $(OBJDIR)/fpga_all.o $(THUMBOBJ) $(ARMOBJ) $(OBJDIR)/fullimage.stage1.elf: $(VERSIONOBJ) $(OBJDIR)/fpga_all.o $(THUMBOBJ) $(ARMOBJ)
$(CC) $(LDFLAGS) -Wl,-T,ldscript,-Map,$(patsubst %.elf,%.map,$@) -o $@ $^ $(LIBS) $(info [=] LD $@)
$(Q)$(CC) $(LDFLAGS) -Wl,-T,ldscript,-Map,$(patsubst %.elf,%.map,$@) -o $@ $^ $(LIBS)
$(OBJDIR)/fullimage.nodata.bin: $(OBJDIR)/fullimage.stage1.elf $(OBJDIR)/fullimage.nodata.bin: $(OBJDIR)/fullimage.stage1.elf
$(OBJCOPY) -O binary -I elf32-littlearm --remove-section .data $^ $@ $(info [-] GEN $@)
$(Q)$(OBJCOPY) -O binary -I elf32-littlearm --remove-section .data $^ $@
$(OBJDIR)/fullimage.nodata.o: $(OBJDIR)/fullimage.nodata.bin $(OBJDIR)/fullimage.nodata.o: $(OBJDIR)/fullimage.nodata.bin
$(OBJCOPY) -O elf32-littlearm -I binary -B arm --rename-section .data=stage1_image $^ $@ $(info [-] GEN $@)
$(Q)$(OBJCOPY) -O elf32-littlearm -I binary -B arm --rename-section .data=stage1_image $^ $@
$(OBJDIR)/fullimage.data.bin: $(OBJDIR)/fullimage.stage1.elf $(OBJDIR)/fullimage.data.bin: $(OBJDIR)/fullimage.stage1.elf
$(OBJCOPY) -O binary -I elf32-littlearm --only-section .data $^ $@ $(info [-] GEN $@)
$(Q)$(OBJCOPY) -O binary -I elf32-littlearm --only-section .data $^ $@
$(OBJDIR)/fullimage.data.bin.z: $(OBJDIR)/fullimage.data.bin $(FPGA_COMPRESSOR) $(OBJDIR)/fullimage.data.bin.z: $(OBJDIR)/fullimage.data.bin $(FPGA_COMPRESSOR)
$(FPGA_COMPRESSOR) $(filter %.bin,$^) $@ $(info [-] GEN $@)
$(Q)$(FPGA_COMPRESSOR) $(filter %.bin,$^) $@
$(OBJDIR)/fullimage.data.o: $(OBJDIR)/fullimage.data.bin.z $(OBJDIR)/fullimage.data.o: $(OBJDIR)/fullimage.data.bin.z
$(OBJCOPY) -O elf32-littlearm -I binary -B arm --rename-section .data=compressed_data $^ $@ $(info [-] GEN $@)
$(Q)$(OBJCOPY) -O elf32-littlearm -I binary -B arm --rename-section .data=compressed_data $^ $@
$(OBJDIR)/fullimage.elf: $(OBJDIR)/fullimage.nodata.o $(OBJDIR)/fullimage.data.o $(OBJDIR)/fullimage.elf: $(OBJDIR)/fullimage.nodata.o $(OBJDIR)/fullimage.data.o
$(CC) $(LDFLAGS) -Wl,-T,ldscript,-e,_osimage_entry,-Map,$(patsubst %.elf,%.map,$@) -o $@ $^ $(info [=] LD $@)
$(Q)$(CC) $(LDFLAGS) -Wl,-T,ldscript,-e,_osimage_entry,-Map,$(patsubst %.elf,%.map,$@) -o $@ $^
tarbin: $(OBJS) tarbin: $(OBJS)
$(TAR) $(TARFLAGS) ../proxmark3-$(platform)-bin.tar $(OBJS:%=armsrc/%) $(OBJS:%.s19=armsrc/%.elf) $(info TAR $@)
$(Q)$(TAR) $(TARFLAGS) ../proxmark3-$(platform)-bin.tar $(OBJS:%=armsrc/%) $(OBJS:%.s19=armsrc/%.elf)
clean: clean:
$(DELETE) $(OBJDIR)$(PATHSEP)*.o $(Q)$(DELETE) $(OBJDIR)$(PATHSEP)*.o
$(DELETE) $(OBJDIR)$(PATHSEP)*.elf $(Q)$(DELETE) $(OBJDIR)$(PATHSEP)*.elf
$(DELETE) $(OBJDIR)$(PATHSEP)*.s19 $(Q)$(DELETE) $(OBJDIR)$(PATHSEP)*.s19
$(DELETE) $(OBJDIR)$(PATHSEP)*.map $(Q)$(DELETE) $(OBJDIR)$(PATHSEP)*.map
$(DELETE) $(OBJDIR)$(PATHSEP)*.d $(Q)$(DELETE) $(OBJDIR)$(PATHSEP)*.d
$(DELETE) $(OBJDIR)$(PATHSEP)*.z $(Q)$(DELETE) $(OBJDIR)$(PATHSEP)*.z
$(DELETE) $(OBJDIR)$(PATHSEP)*.bin $(Q)$(DELETE) $(OBJDIR)$(PATHSEP)*.bin
$(DELETE) version.c $(Q)$(DELETE) version.c
.PHONY: all clean help .PHONY: all clean help
help: help:

View file

@ -35,23 +35,26 @@ OBJS = $(OBJDIR)/bootrom.s19
# version.c should be remade on every compilation # version.c should be remade on every compilation
version.c: default_version.c version.c: default_version.c
perl ../tools/mkversion.pl .. > $@ || $(COPY) $^ $@ $(info [=] GEN $@)
$(Q)perl ../tools/mkversion.pl .. > $@ || $(COPY) $^ $@
all: $(OBJS) all: $(OBJS)
tarbin: $(OBJS) tarbin: $(OBJS)
$(TAR) $(TARFLAGS) ../proxmark3-$(platform)-bin.tar $(OBJS:%=bootrom/%) $(OBJS:%.s19=bootrom/%.elf) $(info [=] GEN $@)
$(Q)$(TAR) $(TARFLAGS) ../proxmark3-$(platform)-bin.tar $(OBJS:%=bootrom/%) $(OBJS:%.s19=bootrom/%.elf)
$(OBJDIR)/bootrom.elf: $(VERSIONOBJ) $(ASMOBJ) $(ARMOBJ) $(THUMBOBJ) $(OBJDIR)/bootrom.elf: $(VERSIONOBJ) $(ASMOBJ) $(ARMOBJ) $(THUMBOBJ)
$(CC) $(LDFLAGS) -Wl,-T,ldscript-flash,-Map,$(patsubst %.elf,%.map,$@) -o $@ $^ $(LIBS) $(info [=] LD $@)
$(Q)$(CC) $(LDFLAGS) -Wl,-T,ldscript-flash,-Map,$(patsubst %.elf,%.map,$@) -o $@ $^ $(LIBS)
clean: clean:
$(DELETE) $(OBJDIR)$(PATHSEP)*.o $(Q)$(DELETE) $(OBJDIR)$(PATHSEP)*.o
$(DELETE) $(OBJDIR)$(PATHSEP)*.elf $(Q)$(DELETE) $(OBJDIR)$(PATHSEP)*.elf
$(DELETE) $(OBJDIR)$(PATHSEP)*.s19 $(Q)$(DELETE) $(OBJDIR)$(PATHSEP)*.s19
$(DELETE) $(OBJDIR)$(PATHSEP)*.map $(Q)$(DELETE) $(OBJDIR)$(PATHSEP)*.map
$(DELETE) $(OBJDIR)$(PATHSEP)*.d $(Q)$(DELETE) $(OBJDIR)$(PATHSEP)*.d
$(DELETE) version.c $(Q)$(DELETE) version.c
.PHONY: all clean help .PHONY: all clean help
help: help:

View file

@ -9,6 +9,10 @@
# Add -DNOFORCE to disable the -F switch # Add -DNOFORCE to disable the -F switch
# Add -DPRESETS to compile with preset models (edit config.h) # Add -DPRESETS to compile with preset models (edit config.h)
# Hide full compilation line:
Q?=@
# To see full command lines, use make Q=
CC = gcc CC = gcc
CXX = g++ CXX = g++
LD = g++ LD = g++
@ -282,53 +286,61 @@ all-static: proxmark3 flasher fpga_compress
proxmark3: LDLIBS+=$(LUALIB) $(JANSSONLIB) $(MBEDTLSLIB) $(CBORLIB) $(QTLDLIBS) proxmark3: LDLIBS+=$(LUALIB) $(JANSSONLIB) $(MBEDTLSLIB) $(CBORLIB) $(QTLDLIBS)
proxmark3: $(OBJDIR)/proxmark3.o $(COREOBJS) $(CMDOBJS) $(OBJCOBJS) $(QTGUIOBJS) $(MULTIARCHOBJS) $(ZLIBOBJS) lualibs/pm3_cmd.lua lualibs/mf_default_keys.lua proxmark3: $(OBJDIR)/proxmark3.o $(COREOBJS) $(CMDOBJS) $(OBJCOBJS) $(QTGUIOBJS) $(MULTIARCHOBJS) $(ZLIBOBJS) lualibs/pm3_cmd.lua lualibs/mf_default_keys.lua
$(LD) $(LDFLAGS) $(OBJDIR)/proxmark3.o $(COREOBJS) $(CMDOBJS) $(OBJCOBJS) $(QTGUIOBJS) $(MULTIARCHOBJS) $(ZLIBOBJS) $(LDLIBS) -o $@ $(info [=] LD $@)
$(Q)$(LD) $(LDFLAGS) $(OBJDIR)/proxmark3.o $(COREOBJS) $(CMDOBJS) $(OBJCOBJS) $(QTGUIOBJS) $(MULTIARCHOBJS) $(ZLIBOBJS) $(LDLIBS) -o $@
flasher: $(OBJDIR)/flash.o $(OBJDIR)/flasher.o $(COREOBJS) $(OBJCOBJS) flasher: $(OBJDIR)/flash.o $(OBJDIR)/flasher.o $(COREOBJS) $(OBJCOBJS)
$(LD) $(LDFLAGS) $^ $(LDLIBS) -o $@ $(info [=] LD $@)
$(Q)$(LD) $(LDFLAGS) $^ $(LDLIBS) -o $@
fpga_compress: $(OBJDIR)/fpga_compress.o $(ZLIBOBJS) fpga_compress: $(OBJDIR)/fpga_compress.o $(ZLIBOBJS)
$(LD) $(LDFLAGS) $(ZLIBFLAGS) $^ $(LDLIBS) -o $@ $(info [=] LD $@)
$(Q)$(LD) $(LDFLAGS) $(ZLIBFLAGS) $^ $(LDLIBS) -o $@
proxgui.cpp: ui/ui_overlays.h proxgui.cpp: ui/ui_overlays.h
proxguiqt.moc.cpp: proxguiqt.h proxguiqt.moc.cpp: proxguiqt.h
$(MOC) -o$@ $^ $(info [-] MOC $@)
$(Q)$(MOC) -o$@ $^
ui/ui_overlays.h: ui/overlays.ui ui/ui_overlays.h: ui/overlays.ui
$(UIC) $^ > $@ $(info [-] UIC $@)
$(Q)$(UIC) $^ > $@
lualibs/pm3_cmd.lua: ../include/pm3_cmd.h lualibs/pm3_cmd.lua: ../include/pm3_cmd.h
awk -f pm3_cmd_h2lua.awk $^ > $@ $(info [=] GEN $@)
$(Q)awk -f pm3_cmd_h2lua.awk $^ > $@
lualibs/mf_default_keys.lua : default_keys.dic lualibs/mf_default_keys.lua : default_keys.dic
awk -f default_keys_dic2lua.awk $^ > $@ $(info [=] GEN $@)
$(Q)awk -f default_keys_dic2lua.awk $^ > $@
clean: clean:
$(RM) $(CLEAN) $(Q)$(RM) $(CLEAN)
cd ../liblua && $(MAKE) clean $(Q)$(MAKE) --no-print-directory -C ../liblua clean
cd $(JANSSONLIBPATH) && $(MAKE) clean $(Q)$(MAKE) --no-print-directory -C $(JANSSONLIBPATH) clean
cd $(MBEDTLSLIBPATH) && $(MAKE) clean $(Q)$(MAKE) --no-print-directory -C $(MBEDTLSLIBPATH) clean
cd $(CBORLIBPATH) && $(MAKE) clean $(Q)$(MAKE) --no-print-directory -C $(CBORLIBPATH) clean
tarbin: $(BINS) tarbin: $(BINS)
$(TAR) $(TARFLAGS) ../proxmark3-$(platform)-bin.tar $(BINS:%=client/%) $(WINBINS:%=client/%) $(info [=] TAR ../proxmark3-$(platform)-bin.tar)
$(Q)$(TAR) $(TARFLAGS) ../proxmark3-$(platform)-bin.tar $(BINS:%=client/%) $(WINBINS:%=client/%)
lua_build: lua_build:
@echo Compiling liblua, using platform $(LUAPLATFORM) $(info [*] MAKE liblua for $(LUAPLATFORM))
cd ../liblua && $(MAKE) $(LUAPLATFORM) $(Q)$(MAKE) --no-print-directory -C ../liblua $(LUAPLATFORM)
jansson_build: jansson_build:
@echo Compiling jansson $(info [*] MAKE jansson)
cd $(JANSSONLIBPATH) && $(MAKE) all $(Q)$(MAKE) --no-print-directory -C $(JANSSONLIBPATH) all
mbedtls_build: mbedtls_build:
@echo Compiling mbedtls $(info [*] MAKE mbedtls)
cd $(MBEDTLSLIBPATH) && $(MAKE) all $(Q)$(MAKE) --no-print-directory -C $(MBEDTLSLIBPATH) all
cbor_build: cbor_build:
@echo Compiling tinycbor $(info [*] MAKE tinycbor)
cd $(CBORLIBPATH) && $(MAKE) all $(Q)$(MAKE) --no-print-directory -C $(CBORLIBPATH) all
.PHONY: all clean .PHONY: all clean
@ -336,43 +348,52 @@ cbor_build:
print-%: ; @echo $* = $($*) print-%: ; @echo $* = $($*)
$(OBJDIR)/%_NOSIMD.o : %.c $(OBJDIR)/%_NOSIMD.d $(OBJDIR)/%_NOSIMD.o : %.c $(OBJDIR)/%_NOSIMD.d
$(CC) $(DEPFLAGS:%.Td=%_NOSIMD.Td) $(CFLAGS) $(HARD_SWITCH_NOSIMD) -c -o $@ $< $(info [-] CC(NOSIMD) $<)
$(MV) -f $(OBJDIR)/$*_NOSIMD.Td $(OBJDIR)/$*_NOSIMD.d $(Q)$(CC) $(DEPFLAGS:%.Td=%_NOSIMD.Td) $(CFLAGS) $(HARD_SWITCH_NOSIMD) -c -o $@ $<
$(Q)$(MV) -f $(OBJDIR)/$*_NOSIMD.Td $(OBJDIR)/$*_NOSIMD.d
$(OBJDIR)/%_MMX.o : %.c $(OBJDIR)/%_MMX.d $(OBJDIR)/%_MMX.o : %.c $(OBJDIR)/%_MMX.d
$(CC) $(DEPFLAGS:%.Td=%_MMX.Td) $(CFLAGS) $(HARD_SWITCH_MMX) -c -o $@ $< $(info [-] CC(MMX) $<)
$(MV) -f $(OBJDIR)/$*_MMX.Td $(OBJDIR)/$*_MMX.d $(Q)$(CC) $(DEPFLAGS:%.Td=%_MMX.Td) $(CFLAGS) $(HARD_SWITCH_MMX) -c -o $@ $<
$(Q)$(MV) -f $(OBJDIR)/$*_MMX.Td $(OBJDIR)/$*_MMX.d
$(OBJDIR)/%_SSE2.o : %.c $(OBJDIR)/%_SSE2.d $(OBJDIR)/%_SSE2.o : %.c $(OBJDIR)/%_SSE2.d
$(CC) $(DEPFLAGS:%.Td=%_SSE2.Td) $(CFLAGS) $(HARD_SWITCH_SSE2) -c -o $@ $< $(info [-] CC(SSE2) $<)
$(MV) -f $(OBJDIR)/$*_SSE2.Td $(OBJDIR)/$*_SSE2.d $(Q)$(CC) $(DEPFLAGS:%.Td=%_SSE2.Td) $(CFLAGS) $(HARD_SWITCH_SSE2) -c -o $@ $<
$(Q)$(MV) -f $(OBJDIR)/$*_SSE2.Td $(OBJDIR)/$*_SSE2.d
$(OBJDIR)/%_AVX.o : %.c $(OBJDIR)/%_AVX.d $(OBJDIR)/%_AVX.o : %.c $(OBJDIR)/%_AVX.d
$(CC) $(DEPFLAGS:%.Td=%_AVX.Td) $(CFLAGS) $(HARD_SWITCH_AVX) -c -o $@ $< $(info [-] CC(AVX) $<)
$(MV) -f $(OBJDIR)/$*_AVX.Td $(OBJDIR)/$*_AVX.d $(Q)$(CC) $(DEPFLAGS:%.Td=%_AVX.Td) $(CFLAGS) $(HARD_SWITCH_AVX) -c -o $@ $<
$(Q)$(MV) -f $(OBJDIR)/$*_AVX.Td $(OBJDIR)/$*_AVX.d
$(OBJDIR)/%_AVX2.o : %.c $(OBJDIR)/%_AVX2.d $(OBJDIR)/%_AVX2.o : %.c $(OBJDIR)/%_AVX2.d
$(CC) $(DEPFLAGS:%.Td=%_AVX2.Td) $(CFLAGS) $(HARD_SWITCH_AVX2) -c -o $@ $< $(info [-] CC(AVX2) $<)
$(MV) -f $(OBJDIR)/$*_AVX2.Td $(OBJDIR)/$*_AVX2.d $(Q)$(CC) $(DEPFLAGS:%.Td=%_AVX2.Td) $(CFLAGS) $(HARD_SWITCH_AVX2) -c -o $@ $<
$(Q)$(MV) -f $(OBJDIR)/$*_AVX2.Td $(OBJDIR)/$*_AVX2.d
$(OBJDIR)/%_AVX512.o : %.c $(OBJDIR)/%_AVX512.d $(OBJDIR)/%_AVX512.o : %.c $(OBJDIR)/%_AVX512.d
$(CC) $(DEPFLAGS:%.Td=%_AVX512.Td) $(CFLAGS) $(HARD_SWITCH_AVX512) -c -o $@ $< $(info [-] CC(AVX512) $<)
$(MV) -f $(OBJDIR)/$*_AVX512.Td $(OBJDIR)/$*_AVX512.d $(Q)$(CC) $(DEPFLAGS:%.Td=%_AVX512.Td) $(CFLAGS) $(HARD_SWITCH_AVX512) -c -o $@ $<
$(Q)$(MV) -f $(OBJDIR)/$*_AVX512.Td $(OBJDIR)/$*_AVX512.d
%.o: %.c %.o: %.c
$(OBJDIR)/%.o : %.c $(OBJDIR)/%.d $(OBJDIR)/%.o : %.c $(OBJDIR)/%.d
$(CC) $(DEPFLAGS) $(CFLAGS) $(ZLIBFLAGS) -c -o $@ $< $(info [-] CC $<)
$(POSTCOMPILE) $(Q)$(CC) $(DEPFLAGS) $(CFLAGS) $(ZLIBFLAGS) -c -o $@ $<
$(Q)$(POSTCOMPILE)
%.o: %.cpp %.o: %.cpp
$(OBJDIR)/%.o : %.cpp $(OBJDIR)/%.d $(OBJDIR)/%.o : %.cpp $(OBJDIR)/%.d
$(CXX) $(DEPFLAGS) $(CXXFLAGS) $(QTINCLUDES) -c -o $@ $< $(info [-] CXX $<)
$(POSTCOMPILE) $(Q)$(CXX) $(DEPFLAGS) $(CXXFLAGS) $(QTINCLUDES) -c -o $@ $<
$(Q)$(POSTCOMPILE)
%.o: %.m %.o: %.m
$(OBJDIR)/%.o : %.m $(OBJDIR)/%.d $(OBJDIR)/%.o : %.m $(OBJDIR)/%.d
$(CC) $(DEPFLAGS) $(CFLAGS) -c -o $@ $< $(info [-] CC $<)
$(POSTCOMPILE) $(Q)$(CC) $(DEPFLAGS) $(CFLAGS) -c -o $@ $<
$(Q)$(POSTCOMPILE)
#$(CMDOBJS) $(COREOBJS): $(notdir $(%.c)) %.d #$(CMDOBJS) $(COREOBJS): $(notdir $(%.c)) %.d
# $(CC) $(DEPFLAGS) $(CFLAGS) -c -o $@ $< # $(CC) $(DEPFLAGS) $(CFLAGS) -c -o $@ $<

View file

@ -1,3 +1,6 @@
# Hide full compilation line:
Q?=@
# To see full command lines, use make Q=
include_HEADERS = jansson.h include_HEADERS = jansson.h
nodist_include_HEADERS = jansson_config.h nodist_include_HEADERS = jansson_config.h
@ -50,17 +53,19 @@ MYLIBS=
MYOBJS= MYOBJS=
$(LIB_A): $(CMDOBJS) $(LIB_A): $(CMDOBJS)
$(AR) $(LIB_A) $(CMDOBJS) $(info [=] AR $@)
$(RANLIB) $(LIB_A) $(Q)$(AR) $(LIB_A) $(CMDOBJS)
$(Q)$(RANLIB) $(LIB_A)
all: $(LIB_A) all: $(LIB_A)
clean: clean:
$(RM) $(CLEAN) $(Q)$(RM) $(CLEAN)
$(RM) $(LIB_A) $(Q)$(RM) $(LIB_A)
%.o: %.c %.o: %.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(CFLAGS) -c -o $@ $< $(LIBS) $(info [-] CC $<)
$(Q)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(CFLAGS) -c -o $@ $< $(LIBS)
.PHONY: all clean .PHONY: all clean

View file

@ -1,3 +1,6 @@
# Hide full compilation line:
Q?=@
# To see full command lines, use make Q=
LIB_A = tinycbor.a LIB_A = tinycbor.a
tinycbor_SOURCES = \ tinycbor_SOURCES = \
@ -32,17 +35,19 @@ MYLIBS=
MYOBJS= MYOBJS=
$(LIB_A): $(CMDOBJS) $(LIB_A): $(CMDOBJS)
$(AR) $(LIB_A) $(CMDOBJS) $(info [=] AR $@)
$(RANLIB) $(LIB_A) $(Q)$(AR) $(LIB_A) $(CMDOBJS)
$(Q)$(RANLIB) $(LIB_A)
all: $(LIB_A) all: $(LIB_A)
clean: clean:
$(RM) $(CLEAN) $(Q)$(RM) $(CLEAN)
$(RM) $(LIB_A) $(Q)$(RM) $(LIB_A)
%.o: %.c %.o: %.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(CFLAGS) -c -o $@ $< $(LIBS) $(info [-] CC $<)
$(Q)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(CFLAGS) -c -o $@ $< $(LIBS)
.PHONY: all clean .PHONY: all clean

View file

@ -13,6 +13,10 @@
# variables # variables
# #
# Hide full compilation line:
Q?=@
# To see full command lines, use make Q=
# Make sure that all is the default target # Make sure that all is the default target
# (The including Makefile still needs to define what 'all' is) # (The including Makefile still needs to define what 'all' is)
@ -74,16 +78,20 @@ ASMOBJ = $(patsubst %.s,$(OBJDIR)/%.o,$(notdir $(ASMSRC)))
VERSIONOBJ = $(patsubst %.c,$(OBJDIR)/%.o,$(notdir $(VERSIONSRC))) VERSIONOBJ = $(patsubst %.c,$(OBJDIR)/%.o,$(notdir $(VERSIONSRC)))
$(THUMBOBJ): $(OBJDIR)/%.o: %.c $(INCLUDES) $(THUMBOBJ): $(OBJDIR)/%.o: %.c $(INCLUDES)
$(CC) $(CFLAGS) -mthumb -mthumb-interwork -o $@ $< $(info [-] CC $<)
$(Q)$(CC) $(CFLAGS) -mthumb -mthumb-interwork -o $@ $<
$(ARMOBJ): $(OBJDIR)/%.o: %.c $(INCLUDES) $(ARMOBJ): $(OBJDIR)/%.o: %.c $(INCLUDES)
$(CC) $(CFLAGS) -mthumb-interwork -o $@ $< $(info [-] CC $<)
$(Q)$(CC) $(CFLAGS) -mthumb-interwork -o $@ $<
$(ASMOBJ): $(OBJDIR)/%.o: %.s $(ASMOBJ): $(OBJDIR)/%.o: %.s
$(CC) $(CFLAGS) -mthumb-interwork -o $@ $< $(info [-] CC $<)
$(Q)$(CC) $(CFLAGS) -mthumb-interwork -o $@ $<
$(VERSIONOBJ): $(OBJDIR)/%.o: %.c $(INCLUDES) $(VERSIONOBJ): $(OBJDIR)/%.o: %.c $(INCLUDES)
$(CC) $(CFLAGS) -mthumb -mthumb-interwork -o $@ $< $(info [-] CC $<)
$(Q)$(CC) $(CFLAGS) -mthumb -mthumb-interwork -o $@ $<
# This objcopy call translates physical flash addresses to logical addresses # This objcopy call translates physical flash addresses to logical addresses
# without touching start address or RAM addresses (.bss and .data sections) # without touching start address or RAM addresses (.bss and .data sections)
@ -93,7 +101,8 @@ OBJCOPY_TRANSLATIONS = --no-change-warnings \
--change-section-address .bss+0 --change-section-address .data-0x100000 \ --change-section-address .bss+0 --change-section-address .data-0x100000 \
--change-section-address .commonarea+0 --change-section-address .commonarea+0
$(OBJDIR)/%.s19: $(OBJDIR)/%.elf $(OBJDIR)/%.s19: $(OBJDIR)/%.elf
$(OBJCOPY) -Osrec --srec-forceS3 --strip-debug $(OBJCOPY_TRANSLATIONS) $^ $@ $(info [=] GEN $@)
$(Q)$(OBJCOPY) -Osrec --srec-forceS3 --strip-debug $(OBJCOPY_TRANSLATIONS) $^ $@
# easy printing of MAKE VARIABLES # easy printing of MAKE VARIABLES
print-%: ; @echo $* = $($*) print-%: ; @echo $* = $($*)

View file

@ -1,3 +1,6 @@
# Hide full compilation line:
Q?=@
# To see full command lines, use make Q=
LIB_A = libmbedtls.a LIB_A = libmbedtls.a
mbedtls_SOURCES = \ mbedtls_SOURCES = \
@ -73,17 +76,19 @@ MYLIBS=
MYOBJS= MYOBJS=
$(LIB_A): $(CMDOBJS) $(LIB_A): $(CMDOBJS)
$(AR) $(LIB_A) $(CMDOBJS) $(info [=] AR $@)
$(RANLIB) $(LIB_A) $(Q)$(AR) $(LIB_A) $(CMDOBJS)
$(Q)$(RANLIB) $(LIB_A)
all: $(LIB_A) all: $(LIB_A)
clean: clean:
$(RM) $(CLEAN) $(Q)$(RM) $(CLEAN)
$(RM) $(LIB_A) $(Q)$(RM) $(LIB_A)
%.o: %.c %.o: %.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(CFLAGS) -c -o $@ $< $(LIBS) $(info [-] CC $<)
$(Q)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(CFLAGS) -c -o $@ $< $(LIBS)
.PHONY: all clean .PHONY: all clean

View file

@ -2,33 +2,39 @@ include ../common/Makefile.common # for $(DETECTED_OS)
all: fpga_lf.bit fpga_hf.bit all: fpga_lf.bit fpga_hf.bit
clean: clean:
$(DELETE) *.bgn *.drc *.ncd *.ngd *_par.xrpt *-placed.* *-placed_pad.* *_usage.xml xst_hf.srp xst_lf.srp $(Q)$(DELETE) *.bgn *.drc *.ncd *.ngd *_par.xrpt *-placed.* *-placed_pad.* *_usage.xml xst_hf.srp xst_lf.srp
$(DELETE) *.map *.ngc *.xrpt *.pcf *.rbt *_auto_* *.bld *.mrp *.ngm *.unroutes *_summary.xml netlist.lst xst $(Q)$(DELETE) *.map *.ngc *.xrpt *.pcf *.rbt *_auto_* *.bld *.mrp *.ngm *.unroutes *_summary.xml netlist.lst xst
fpga_hf.ngc: fpga_hf.v fpga.ucf xst_hf.scr util.v hi_simulate.v hi_read_tx.v hi_read_rx_xcorr.v hi_iso14443a.v hi_sniffer.v hi_flite.v fpga_hf.ngc: fpga_hf.v fpga.ucf xst_hf.scr util.v hi_simulate.v hi_read_tx.v hi_read_rx_xcorr.v hi_iso14443a.v hi_sniffer.v hi_flite.v
$(DELETE) $@ $(Q)$(DELETE) $@
$(XILINX_TOOLS_PREFIX)xst -ifn xst_hf.scr $(info [-] XST $@)
$(Q)$(XILINX_TOOLS_PREFIX)xst -ifn xst_hf.scr
fpga_lf.ngc: fpga_lf.v fpga.ucf xst_lf.scr util.v clk_divider.v lo_edge_detect.v lo_read.v lo_passthru.v lp20khz_1MSa_iir_filter.v min_max_tracker.v lf_edge_detect.v fpga_lf.ngc: fpga_lf.v fpga.ucf xst_lf.scr util.v clk_divider.v lo_edge_detect.v lo_read.v lo_passthru.v lp20khz_1MSa_iir_filter.v min_max_tracker.v lf_edge_detect.v
$(DELETE) $@ $(Q)$(DELETE) $@
$(XILINX_TOOLS_PREFIX)xst -ifn xst_lf.scr $(info [-] XST $@)
$(Q)$(XILINX_TOOLS_PREFIX)xst -ifn xst_lf.scr
%.ngd: %.ngc %.ngd: %.ngc
$(DELETE) $@ $(Q)$(DELETE) $@
$(XILINX_TOOLS_PREFIX)ngdbuild -aul -p xc2s30-5-vq100 -nt timestamp -uc fpga.ucf $< $@ $(info [-] NGD $@)
$(Q)$(XILINX_TOOLS_PREFIX)ngdbuild -aul -p xc2s30-5-vq100 -nt timestamp -uc fpga.ucf $< $@
%.ncd: %.ngd %.ncd: %.ngd
$(DELETE) $@ $(Q)$(DELETE) $@
$(XILINX_TOOLS_PREFIX)map -p xc2s30-5-vq100 $< $(info [-] MAP $@)
$(Q)$(XILINX_TOOLS_PREFIX)map -p xc2s30-5-vq100 $<
%-placed.ncd: %.ncd %-placed.ncd: %.ncd
$(DELETE) $@ $(Q)$(DELETE) $@
$(XILINX_TOOLS_PREFIX)par $< $@ $(info [-] PAR $@)
$(Q)$(XILINX_TOOLS_PREFIX)par $< $@
%.bit: %-placed.ncd %.bit: %-placed.ncd
$(DELETE) $@ $*.drc $*.rbt $(Q)$(DELETE) $@ $*.drc $*.rbt
$(XILINX_TOOLS_PREFIX)bitgen $< $@ $(info [=] BITGEN $@)
$(Q)$(XILINX_TOOLS_PREFIX)bitgen $< $@
.PHONY: all clean help .PHONY: all clean help
help: help:

View file

@ -3,6 +3,10 @@
# == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT ======================= # == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT =======================
# Hide full compilation line:
Q?=@
# To see full command lines, use make Q=
# Your platform. See PLATS for possible values. # Your platform. See PLATS for possible values.
PLAT= none PLAT= none
@ -26,6 +30,10 @@ MYOBJS=
# == END OF USER SETTINGS -- NO NEED TO CHANGE ANYTHING BELOW THIS LINE ======= # == END OF USER SETTINGS -- NO NEED TO CHANGE ANYTHING BELOW THIS LINE =======
%.o: %.c
$(info [-] CC $<)
$(Q)$(CC) -c $(CFLAGS) $(CPPFLAGS) -o $@ $<
PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris
LUA_A= liblua.a LUA_A= liblua.a
@ -56,20 +64,24 @@ o: $(ALL_O)
a: $(ALL_A) a: $(ALL_A)
$(LUA_A): $(BASE_O) $(LUA_A): $(BASE_O)
$(AR) $@ $(BASE_O) $(info [=] AR $@)
$(RANLIB) $@ $(Q)$(AR) $@ $(BASE_O)
$(Q)$(RANLIB) $@
$(LUA_T): $(LUA_O) $(LUA_A) $(LUA_T): $(LUA_O) $(LUA_A)
$(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) $(info [=] LD $@)
$(Q)$(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS)
$(LUAC_T): $(LUAC_O) $(LUA_A) $(LUAC_T): $(LUAC_O) $(LUA_A)
$(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS) $(info [=] LD $@)
$(Q)$(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS)
clean: clean:
$(RM) $(ALL_T) $(ALL_O) $(Q)$(RM) $(ALL_T) $(ALL_O)
depend: depend:
@$(CC) $(CFLAGS) -MM l*.c $(info GEN DEPS)
$(Q)$(CC) $(CFLAGS) -MM l*.c
echo: echo:
@echo "PLAT= $(PLAT)" @echo "PLAT= $(PLAT)"
@ -89,36 +101,36 @@ none:
@echo " $(PLATS)" @echo " $(PLATS)"
aix: aix:
$(MAKE) $(ALL) CC="xlc" CFLAGS="-O2 -DLUA_USE_POSIX -DLUA_USE_DLOPEN" SYSLIBS="-ldl" SYSLDFLAGS="-brtl -bexpall" $(Q)$(MAKE) $(ALL) CC="xlc" CFLAGS="-O2 -DLUA_USE_POSIX -DLUA_USE_DLOPEN" SYSLIBS="-ldl" SYSLDFLAGS="-brtl -bexpall"
ansi: ansi:
$(MAKE) $(ALL) SYSCFLAGS="-DLUA_ANSI" $(Q)$(MAKE) $(ALL) SYSCFLAGS="-DLUA_ANSI"
bsd: bsd:
$(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN" SYSLIBS="-Wl,-E" $(Q)$(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN" SYSLIBS="-Wl,-E"
freebsd: freebsd:
$(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -lreadline" $(Q)$(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -lreadline"
generic: $(ALL) generic: $(ALL)
linux: linux:
$(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl -lreadline -ltermcap -lncurses" $(Q)$(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl -lreadline -ltermcap -lncurses"
macosx: macosx:
$(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_MACOSX" SYSLIBS="-lreadline" $(Q)$(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_MACOSX" SYSLIBS="-lreadline"
mingw: mingw:
$(MAKE) "LUA_A=lua52.dll" "LUA_T=lua.exe" \ $(Q)$(MAKE) "LUA_A=lua52.dll" "LUA_T=lua.exe" \
"AR=$(CC) -shared -o" "RANLIB=strip --strip-unneeded" \ "AR=$(CC) -shared -o" "RANLIB=strip --strip-unneeded" \
"SYSCFLAGS=-DLUA_BUILD_AS_DLL" "SYSLIBS=" "SYSLDFLAGS=-s" lua.exe "SYSCFLAGS=-DLUA_BUILD_AS_DLL" "SYSLIBS=" "SYSLDFLAGS=-s" lua.exe
$(MAKE) "LUAC_T=luac.exe" luac.exe $(Q)$(MAKE) "LUAC_T=luac.exe" luac.exe
posix: posix:
$(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX" $(Q)$(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX"
solaris: solaris:
$(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN" SYSLIBS="-ldl" $(Q)$(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN" SYSLIBS="-ldl"
# list targets that do not create files (but not all makes understand .PHONY) # list targets that do not create files (but not all makes understand .PHONY)
.PHONY: all $(PLATS) default o a clean depend echo none .PHONY: all $(PLATS) default o a clean depend echo none

View file

@ -5,14 +5,17 @@ BINS = bootrom.bin fullimage.bin proxmark3_recovery.bin
all: $(BINS) all: $(BINS)
bootrom.bin: ../bootrom/obj/bootrom.elf bootrom.bin: ../bootrom/obj/bootrom.elf
$(OBJCOPY) --gap-fill=0xff --pad-to 0x00102000 -O binary $^ $@ $(info [=] GEN $@)
$(Q)$(OBJCOPY) --gap-fill=0xff --pad-to 0x00102000 -O binary $^ $@
fullimage.bin: ../armsrc/obj/fullimage.elf fullimage.bin: ../armsrc/obj/fullimage.elf
$(OBJCOPY) --gap-fill=0xff -O binary $^ $@ $(info [=] GEN $@)
$(Q)$(OBJCOPY) --gap-fill=0xff -O binary $^ $@
proxmark3_recovery.bin: bootrom.bin fullimage.bin proxmark3_recovery.bin: bootrom.bin fullimage.bin
cat bootrom.bin fullimage.bin > $@ $(info [=] GEN $@)
$(Q)cat bootrom.bin fullimage.bin > $@
clean: clean:
rm -f $(BINS) $(Q)rm -f $(BINS)

View file

@ -1,3 +1,7 @@
# Hide full compilation line:
Q?=@
# To see full command lines, use make Q=
VPATH = ../../common ../../common/crapto1 ../../client VPATH = ../../common ../../common/crapto1 ../../client
CC = gcc CC = gcc
LD = gcc LD = gcc
@ -10,10 +14,12 @@ EXES = mfkey32 mfkey32v2 mfkey64
all: $(OBJS) $(EXES) all: $(OBJS) $(EXES)
%.o : %.c %.o : %.c
$(CC) $(CFLAGS) -c -o $@ $< $(info [-] CC $<)
$(Q)$(CC) $(CFLAGS) -c -o $@ $<
% : %.c $(OBJS) % : %.c $(OBJS)
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS) $< $(info [=] LD $@)
$(Q)$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS) $<
clean: clean:
rm -f $(OBJS) $(EXES) $(Q)rm -f $(OBJS) $(EXES)

View file

@ -1,3 +1,7 @@
# Hide full compilation line:
Q?=@
# To see full command lines, use make Q=
CC = gcc CC = gcc
CFLAGS = -std=c99 -Wall -O3 -I. CFLAGS = -std=c99 -Wall -O3 -I.
LDFLAGS = -std=c99 -Wall LDFLAGS = -std=c99 -Wall
@ -9,15 +13,20 @@ PROG := nonce2key
all: $(PROG) all: $(PROG)
$(PROG): $(OBJ) $(PROG): $(OBJ)
$(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ $(info [=] LD $@)
$(Q)$(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@
clean: clean:
@$(RM) $(DEP) $(OBJ) $(PROG) $(Q)$(RM) $(DEP) $(OBJ) $(PROG)
ifneq ($(filter clean,$(MAKECMDGOALS)),clean) ifneq ($(filter clean,$(MAKECMDGOALS)),clean)
-include $(DEP) -include $(DEP)
endif endif
%.d: %.c %.d: %.c
$(info GEN $@) $(info [-] GEN $@)
@$(CC) -MM $(CFLAGS) $< | sed 's/\($*\)\.o[ :]*/\1.o $@ : /g' > $@ $(Q)$(CC) -MM $(CFLAGS) $< | sed 's/\($*\)\.o[ :]*/\1.o $@ : /g' > $@
%.o: %.c
$(info [-] CC $<)
$(Q)$(CC) -c $(CFLAGS) $(CPPFLAGS) -o $@ $<