📄 makefile
字号:
## UPX stub Makefile (GNU make)## see http://upx.sourceforge.net/download/tools/# for required build tools#ifeq ($(strip $(UCLDIR)),)# change this to reflect where the UCL library isUCLDIR = $(HOME)/local/src/ucl-1.02endif# -------------------------------------------------------# You should not have to change anything below this line.# -------------------------------------------------------SHELL = /bin/shsrcdir = .top_srcdir = ../..# These are the files we want to create.STUBS = \ l_com.h \ l_djgpp2.h stubify.h \ l_exe.h \ l_lx_n2b.h l_lx_n2d.h l_lx_n2e.h \ l_sys.h \ l_t_n2b.h l_t_n2bs.h l_t_n2d.h l_t_n2ds.h l_t_n2e.h l_t_n2es.h \ l_tmt.h \ l_wcle.h \ l_w32pe.h# util var for use in the rules - basename of the current targetoverride T = $(basename $@)# /***********************************************************************# // source directories# ************************************************************************/UCL_UPX = $(UCLDIR)/upxUCL_I386 = $(UCLDIR)/upx/i386UCL_M68K = $(UCLDIR)/upx/m68k.SUFFIXES:.SUFFIXES: .asm .ash .asx .asy .bin .c .h .svpath %.ash $(UCL_I386)vpath %.ash $(UCL_M68K)# /***********************************************************************# // tools# ************************************************************************/NASM = nasm -O15 -w+macro-params -w+macro-selfref -w+number-overflow -w+orphan-labelsNASM += -I$(srcdir)/APP_I386 = perl -w $(srcdir)/scripts/app_i386.plBIN2H = perl -w $(srcdir)/scripts/bin2h.plBRANDELF = perl -w $(srcdir)/scripts/brandelf.plO2BIN = perl -w $(srcdir)/scripts/o2bin.plSTRIPELF = perl -w $(srcdir)/scripts/stripelf.plVERSION = perl -w $(srcdir)/scripts/version.pl###### linux/i386###LD_LINUX_I386 = ldLD_LINUX_I386 = ld-2.13.2OBJCOPY_LINUX_I386 = objcopy# gcc 2.7.2.3 (l_lx_*.bin: 1568 / 1588 / 1604)CC_LINUX_I386_GCC272 = gcc-2.72 -m386 -O2 -MMDCC_LINUX_I386_GCC272 += -malign-functions=0 -malign-jumps=0 -malign-loops=0# gcc 2.95.3 (l_lx_*.bin: 1588 / 1608 / 1624)CC_LINUX_I386_GCC295 = gcc-2.95 -march=i386 -mcpu=k6 -fno-exceptions -MMDCC_LINUX_I386_GCC295 += -Os -fno-omit-frame-pointerCC_LINUX_I386_GCC295 += -malign-functions=0 -malign-jumps=0 -malign-loops=0CC_LINUX_I386_GCC295 += -Werror# gcc 3.4.0 (l_lx_*.bin: 1468 / 1488 / 1504)CC_LINUX_I386_GCC340 = gcc-3.4 -march=i386 -mtune=k6 -fno-exceptions -MMDCC_LINUX_I386_GCC340 += -Os -fno-omit-frame-pointerCC_LINUX_I386_GCC340 += -momit-leaf-frame-pointerCC_LINUX_I386_GCC340 += -fno-align-functions -fno-align-jumps -fno-align-labels -fno-align-loops##CC_LINUX_I386_GCC340 += -fwebCC_LINUX_I386_GCC340 += -WerrorCC_LINUX_I386 = $(CC_LINUX_I386_GCC272)CC_LINUX_I386 = $(CC_LINUX_I386_GCC295)CC_LINUX_I386 = $(CC_LINUX_I386_GCC340)CC_LINUX_I386 += -nostdincCC_LINUX_I386 += -Wall -W -Wcast-align -Wcast-qual -Wwrite-stringsCC_LINUX_I386 += -funsigned-char###### Motorola 68000###CPP_M68K = gcc-2.72 -nostdinc -I$(UCL_UPX) -I$(srcdir) -E -x assembler-with-cpp -Wall -Wp,-P,-C,-traditionalAPP_M68K = perl -w $(srcdir)/scripts/app_m68k.plifeq (1,1) # a68k 68000-assembler CPP_M68K += -D__A68K__ ASM_M68K = a68k -q -xelse # asl 68000-assembler CPP_M68K += -D__ASL__ ASM_M68K = sh $(srcdir)/scripts/asl_m68k.shendif# /***********************************************************************# // main targets# ************************************************************************/.PHONY: default all stubs mostlyclean clean distclean maintainer-clean ident stringsdefault: @echo "UPX info: type 'make all' if you have all the required build tools."all: stubs @echo "timestamp" > stamp-hstubs: $(STUBS)mostlyclean: -rm -f *.bin *.bkp *.d *.i *.lst *.map stubify.exe -rm -f *.o *.asx *.asyclean: mostlycleanifneq ($(strip $(wildcard stamp-h)),) -rm -f l_*.h $(STUBS)endifdistclean: mostlyclean @-rm -f stamp-hmaintainer-clean: mostlyclean -rm -f l_*.h $(STUBS) @-rm -f stamp-hident: all ident *.binstrings: all strings *.bin# /***********************************************************************# // rules# ************************************************************************/version.asy: ../version.h $(VERSION) --nasm $< > $@%.asx : %.asm $(APP_I386) $< $@%.asy : %.ash $(APP_I386) $< $@stubify.h: stub.asm djasm --gmtime=1070220810 --iname=stub.asm --oname=stub.h $< stubify.exe $(BIN2H) stubify.exe stubify_stub $@ -ql_com.h: l_com.asx $(NASM) -f bin -o $T.bin $< $(BIN2H) $T.bin nrv2b_loader $@l_djgpp2.h: l_djgpp2.asx $(NASM) -f bin -o $T.bin $< $(BIN2H) $T.bin nrv_loader $@l_exe.h: l_exe.asx $(NASM) -f bin -o $T.bin $< $(BIN2H) $T.bin nrv_loader $@l_sys.h: l_sys.asx $(NASM) -f bin -o $T.bin $< $(BIN2H) $T.bin nrv2b_loader $@l_tmt.h: l_tmt.asx $(NASM) -f bin -o $T.bin $< $(BIN2H) $T.bin nrv_loader $@l_vxd.h: l_vxd.asx $(NASM) -f bin -o $T.bin $< $(BIN2H) $T.bin nrv_loader $@l_wcle.h: l_wcle.asx $(NASM) -f bin -o $T.bin $< $(BIN2H) $T.bin nrv_loader $@l_w32pe.h: l_w32pe.asx $(NASM) -f bin -o $T.bin $< $(BIN2H) $T.bin nrv_loader $@# /***********************************************************************# // atari/tos rules# ************************************************************************/l_t_n2b.h: l_tos.s $(CPP_M68K) -DNRV2B -o $T.i $< $(ASM_M68K) $T.i $(O2BIN) $T.o $T.bin 'UPX1' 'UPX9' $(BIN2H) $T.bin nrv2b_loader $@l_t_n2bs.h: l_tos.s $(CPP_M68K) -DNRV2B -DSMALL -o $T.i $< $(ASM_M68K) $T.i $(O2BIN) $T.o $T.bin 'UPX1' 'UPX9' $(BIN2H) $T.bin nrv2b_loader_small $@l_t_n2d.h: l_tos.s $(CPP_M68K) -DNRV2D -o $T.i $< $(ASM_M68K) $T.i $(O2BIN) $T.o $T.bin 'UPX1' 'UPX9' $(BIN2H) $T.bin nrv2d_loader $@l_t_n2ds.h: l_tos.s $(CPP_M68K) -DNRV2D -DSMALL -o $T.i $< $(ASM_M68K) $T.i $(O2BIN) $T.o $T.bin 'UPX1' 'UPX9' $(BIN2H) $T.bin nrv2d_loader_small $@l_t_n2e.h: l_tos.s $(CPP_M68K) -DNRV2E -o $T.i $< $(ASM_M68K) $T.i $(O2BIN) $T.o $T.bin 'UPX1' 'UPX9' $(BIN2H) $T.bin nrv2e_loader $@l_t_n2es.h: l_tos.s $(CPP_M68K) -DNRV2E -DSMALL -o $T.i $< $(ASM_M68K) $T.i $(O2BIN) $T.o $T.bin 'UPX1' 'UPX9' $(BIN2H) $T.bin nrv2e_loader_small $@# /***********************************************************************# // linux rules# ************************************************************************/l_lx_n2b.h: l_linux.c l_xe_n2b.o linux.hh $(CC_LINUX_I386) -DNRV2B -s -o $T.o -c $< $(LD_LINUX_I386) -Map $T.map -o $T.bin l_xe_n2b.o $T.o chmod a-x $T.bin objcopy -S -R .comment -R .note $T.bin $(STRIPELF) $T.bin $(BRANDELF) $T.bin $(BIN2H) $T.bin linux_i386_nrv2b_loader $@l_xe_n2b.o: l_linuxe.asm $(NASM) -i$(UCL_I386)/ -f elf -dNRV2B -o $@ $<l_lx_n2d.h: l_linux.c l_xe_n2d.o linux.hh $(CC_LINUX_I386) -DNRV2D -s -o $T.o -c $< $(LD_LINUX_I386) -Map $T.map -o $T.bin l_xe_n2d.o $T.o chmod a-x $T.bin objcopy -S -R .comment -R .note $T.bin $(STRIPELF) $T.bin $(BRANDELF) $T.bin $(BIN2H) $T.bin linux_i386_nrv2d_loader $@l_xe_n2d.o: l_linuxe.asm $(NASM) -i$(UCL_I386)/ -f elf -dNRV2D -o $@ $<l_lx_n2e.h: l_linux.c l_xe_n2e.o linux.hh $(CC_LINUX_I386) -DNRV2E -s -o $T.o -c $< $(LD_LINUX_I386) -Map $T.map -o $T.bin l_xe_n2e.o $T.o chmod a-x $T.bin objcopy -S -R .comment -R .note $T.bin $(STRIPELF) $T.bin $(BRANDELF) $T.bin $(BIN2H) $T.bin linux_i386_nrv2e_loader $@l_xe_n2e.o: l_linuxe.asm $(NASM) -i$(UCL_I386)/ -f elf -dNRV2E -o $@ $<# /***********************************************************************# // dependencies# ************************************************************************/DEPS_FILES := $(wildcard *.d)ifneq ($(strip $(DEPS_FILES)),) include $(DEPS_FILES)endifDEPS1 = header.ash macros.ash version.asy ident.ash ident_n.ash ident_s.ashDEPS2 = header.asy macros.asy$(STUBS): $(srcdir)/scripts/bin2h.plident.ash: version.asyident.asy: version.asyident_n.ash: version.asyident_n.asy: version.asyident_s.ash: version.asyident_s.asy: version.asyl_com.h: n2b_d16.asy $(DEPS2)l_djgpp2.h: n2b_d32.asy n2d_d32.asy n2e_d32.asy $(DEPS2)l_exe.h: n2b_d8e.asy n2d_d8e.asy n2e_d8e.asy $(DEPS2)l_lx_n2b.h: n2b_d32.ash $(DEPS1)l_xe_n2b.o: n2b_d32.ash $(DEPS1)l_lx_n2d.h: n2d_d32.ash $(DEPS1)l_xe_n2d.o: n2d_d32.ash $(DEPS1)l_lx_n2e.h: n2e_d32.ash $(DEPS1)l_xe_n2e.o: n2e_d32.ash $(DEPS1)l_sys.h: n2b_d16.asy $(DEPS2)l_t_n2b.h: n2b_d.ash bits.ash $(DEPS1)l_t_n2bs.h: n2b_d.ash bits.ash $(DEPS1)l_t_n2d.h: n2d_d.ash bits.ash $(DEPS1)l_t_n2ds.h: n2d_d.ash bits.ash $(DEPS1)l_t_n2e.h: n2e_d.ash bits.ash $(DEPS1)l_t_n2es.h: n2e_d.ash bits.ash $(DEPS1)l_tmt.h: n2b_d32.asy n2d_d32.asy n2e_d32.asy $(DEPS2)l_vxd.h: n2b_d32.asy n2d_d32.asy n2e_d32.asy $(DEPS2)l_wcle.h: n2b_d32.asy n2d_d32.asy n2e_d32.asy $(DEPS2)l_w32pe.h: n2b_d32.asy n2d_d32.asy n2e_d32.asy $(DEPS2).NOEXPORT:# vi:nowrap
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -