📄 makefile
字号:
# 1. edit you OS if you want....OS=LINUX#OS=BEOS#OS=FREEBSD#OS=QNX#OS=ATHEOS#OS=W32 ** please use a separate make.bat for W9x **# Set this to gzexe or upx if you want compressionCOMPRESS=gzexe# 2. edit dest dir prefix if you want....PREFIX='/usr/local'#PREFIX=/boot/home# 3. for vi friends only (else leave as is):# choice between '/bin/ex' or default '/bin/sed'EXMODE=SED#EXMODE=EXBINDIR='$(PREFIX)/bin'MANSEC='1'MANDIR='$(PREFIX)/man/man$(MANSEC)'#______________________do not edit below line________________________ASOURCES=e3.asm e3.hAFLAGS = -w+orphan-labels -f elf# this fixes a nasty NASM version conflict# NASM 0.98.08 claims to use -O2 by default, but does not.# NASM 0.98 does not know the -O2 switch#ASVER := $(shell nasm -r)ifeq ($(ASVER),NASM version 0.98) NASM=nasmelse NASM=nasm -O2endifall: e3e3: $(ASOURCES) Makefileifeq ($(OS),LINUX) echo $(ASVER) $(NASM) -f bin -l e3.lst -o e3 e3.asm -DCRIPLED_ELF=1 -D$(OS) -D$(EXMODE) chmod +x e3ifeq ($(COMPRESS),upx) if which upx > /dev/null 2>&1 ; then \ upx -q -q -q -k -9 e3 ; \ fi ;endififeq ($(COMPRESS),gzexe) if which gzexe > /dev/null 2>&1 ; then gzexe e3; fi;endifelse echo $(ASVER) $(NASM) $(AFLAGS) -o e3.o e3.asm -l e3.lst -D$(OS) -D$(EXMODE)ifeq ($(OS),QNX) ld -s -o e3 e3.o -lcelse ld -s -o e3 e3.oendif strip --remove-section .comment e3endif ln -sf e3 e3ws ln -sf e3 e3em ln -sf e3 e3pi ln -sf e3 e3vi ln -sf e3 e3ne# next three are for testing purpose: linking w libcstatc: $(NASM) $(AFLAGS) -o e3.o e3.asm -l e3.lst -D$(OS) -DLIBC -D$(EXMODE) ld -s -static -o e3statc e3.o -lcdync: $(NASM) $(AFLAGS) -o e3.o e3.asm -l e3.lst -D$(OS) -DLIBC -DDYN -D$(EXMODE) gcc e3.o -o e3dync # strip e3dyncdync2:ifeq ($(OS),LINUX) $(NASM) $(AFLAGS) -o e3.o e3.asm -l e3.lst -D$(OS) -DLIBC -DDYN -D$(EXMODE) ld -s -m elf_i386 -o e3dync2 e3.o \ -lc -dynamic-linker /lib/ld-linux.so.2 \ /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtn.oelse $(NASM) $(AFLAGS) -o e3.o e3.asm -l e3.lst -D$(OS) -DLIBC -DDYN -D$(EXMODE) ld -m elf_i386 -o e3dync2 e3.o -lc -e _start /usr/lib/crt1.o endif# next for running in gnu debuggerdebug: $(ASOURCES) Makefile $(NASM) $(AFLAGS) -g -o e3.o e3.asm -l e3.lst -D$(OS) -D$(EXMODE) ld -s -o e3 e3.o strip --remove-section .comment e3 ln -sf e3 e3ws ln -sf e3 e3em ln -sf e3 e3pi ln -sf e3 e3vi ln -sf e3 e3ne# selftest, linux only, assembled with a special option for using an input pipetest:ifeq ($(OS),LINUX) $(NASM) -f bin -l e3.lst -o e3test e3.asm -DSELFTEST -DCRIPLED_ELF=1 -DLINUX -D$(EXMODE)ifeq ($(COMPRESS),upx) if which upx > /dev/null 2>&1 ; then \ upx -q -q -q -k -9 e3test ; \ fi ;endififeq ($(COMPRESS),gzexe) if which gzexe > /dev/null 2>&1 ; then gzexe e3test; fi;endif if [ -f PIPE_IN ]; then rm PIPE_IN ; fi if [ -f e3test~ ]; then rm e3test~ ; fi chmod +x e3test cat e3.h tests/e3test0 | ./e3test clear diff e3.h PIPE_IN && echo -e "\n\n\n**** THE TEST WAS SUCCESSFUL ****\n\n\n" rm PIPE_IN e3testendif# next for cross asm for the ELKS peopleelks: nasm -w+orphan-labels -f as86 -o e3-16.o e3-16.asm -l e3-16.lst -D AS86 -D ELKS ld86 -0 -s -i -H 0xF800 -o e3-16 e3-16.o# next two for cross asm testingw32lst: $(NASM) -f coff -o e3.oW32 e3.asm -l e3.lstW32 -DW32 rm e3.oW32qnxlst: $(NASM) -f elf -o e3.oQNX e3.asm -l e3.lstQNX -DQNX rm e3.oQNX# next for release maintainanceman2html: rman -f HTML e3.man >e3.htmlinstall: e3ifeq ($(OS),QNX) cp ./e3 $(BINDIR)/e3 ln -sf $(BINDIR)/e3 $(BINDIR)/e3ws ln -sf $(BINDIR)/e3 $(BINDIR)/e3em ln -sf $(BINDIR)/e3 $(BINDIR)/e3pi ln -sf $(BINDIR)/e3 $(BINDIR)/e3vi ln -sf $(BINDIR)/e3 $(BINDIR)/e3neelse install -d $(PREFIX) $(BINDIR) $(MANDIR) install -m 755 e3 $(BINDIR) ln -sf $(BINDIR)/e3 $(BINDIR)/e3ws ln -sf $(BINDIR)/e3 $(BINDIR)/e3em ln -sf $(BINDIR)/e3 $(BINDIR)/e3pi ln -sf $(BINDIR)/e3 $(BINDIR)/e3vi ln -sf $(BINDIR)/e3 $(BINDIR)/e3ne install -m 644 e3.man $(MANDIR)/e3.$(MANSEC)endifarmlinux: e3 @cd armlinux && make allclean: rm -f e3*.o e3*.lst e3 e3em e3pi e3vi e3ws e3ne *~ \ PIPE_IN e3test~ e3test e3dync e3dync2 e3statc \ armlinux/*.o armlinux/e3arm
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -