⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 makefile

📁 phelix加密算法源代码,是一个开源的加密算法
💻
字号:
#
# Phelix testbench makefile
#

!if defined(ECRYPT_API) || defined(ECRYPT)
_DEFINES_   =   -DECRYPT_API
_CIPHER_    =   "ECRYPT-Phelix"
_TASMDEF_   =   -TDECRYPT_API       # pass along the switch to assembler
_MASMDEF_   =   -DECRYPT_API
!else           # default is non-ECRYPT
_DEFINES_   =   
_CIPHER_    =   "Phelix"
_TASMDEF_   =
_MASMDEF_   =
!endif

C_TEST      =   testPhelix.c 
C_ALL       =   $(C_TEST) phelix.c

!ifdef _PERF
RUN_TEST    =   testPhelix.exe >> make.log
!else
RUN_TEST    =   testPhelix.exe
!endif

# compiler/assembler invocations
BCC32		=	bcc32			# already in the path
MASM		=	ml
MSVC42		=	\dos\msc42\bin\cl /Oi
MSVC60		=	"\Program Files\microsoft visual Studio\vc98\bin\cl" 
GCC_32      =   \dos\MinGW32\bin\gcc
GCC_342     =   \dos\MinGW342\bin\gcc

# compiler/assembler switches
BCC_OPT     =   -q -B -v -w-8057 -M -g1 $(_TASMDEF_) -Tm2 -Tt -Tl 
GCC_OPT     =   -O3 -Werror -Wall
MSC_OPT     =   /Zi /O2 /WX /W4 /G5
MASM_OPT    =   /coff /c /Fl $(_MASMDEF_)

#++++++++++++++++++++++++++ Borland C++ compiler
default: tasm bcc
    # just compile both

bcc:
    $(BCC32)   $(BCC_OPT)  $(_DEFINES_) $(C_ALL) 
    $(RUN_TEST)
    @echo Success: BCC32   $(_DEFINES_) >> make.log

tasm:
    $(BCC32)   $(BCC_OPT)  $(_DEFINES_) $(C_TEST) phelix86.asm
    $(RUN_TEST)
    @echo Success: TASM    $(_DEFINES_) >> make.log

#++++++++++++++++++++++++++ gcc (MingW)
gcc320: gcc320_masm
    $(GCC_32)  $(GCC_OPT)  $(_DEFINES_) $(C_ALL)  -o testPhelix.exe 
    $(RUN_TEST)
    @echo Success: GCC3.2  $(_DEFINES_) >> make.log

gcc320_masm:
    $(MASM) $(MASM_OPT) $(_MASM_DEF_) pHelix86.asm
	objcopy -I pe-i386 -O elf32-i386 pHelix86.obj pHelix86.o
    $(GCC_32)  $(GCC_OPT)  $(_DEFINES_) $(C_TEST) pHelix86.o -o testPhelix.exe 
    $(RUN_TEST)
    @echo Success: GCC3.2/MASM  $(_DEFINES_) >> make.log

as:
    $(GCC_32)  $(GCC_OPT)  $(_DEFINES_) $(C_TEST) pHelix86.S -o testPhelix.exe 
    $(RUN_TEST)
    $(GCC_342) $(GCC_OPT)  $(_DEFINES_) $(C_TEST) pHelix86.S -o testPhelix.exe 
    $(RUN_TEST)
    @echo Success: AS  $(_DEFINES_) >> make.log

#++++++++++++++++++++++++++ gcc342 (MingW)
gcc342:  gcc342_masm
    $(GCC_342) $(GCC_OPT)  $(_DEFINES_) $(C_ALL) -o testPhelix.exe
    $(RUN_TEST)
    @echo Success: GCC3.42 $(_DEFINES_) >> make.log

gcc342_masm:
    $(MASM) $(MASM_OPT) $(_MASM_DEF_) pHelix86.asm
	objcopy -I pe-i386 -O elf32-i386 pHelix86.obj pHelix86.o
    $(GCC_342) $(GCC_OPT)  $(_DEFINES_) $(C_TEST) pHelix86.o -o testPhelix.exe 
    $(RUN_TEST)
    @echo Success: GCC3.4/MASM $(_DEFINES_) >> make.log

#++++++++++++++++++++++++++ msvc42
msvc42: masm
    @if exist testPhelix.pdb del testPhelix.pdb
    $(MSVC42) $(MSC_OPT)  $(_DEFINES_) $(C_ALL)
    $(RUN_TEST) 
    @echo Success: MSVC4.2 $(_DEFINES_) >> make.log

masm:
    @if exist testPhelix.pdb del testPhelix.pdb
    $(MASM) $(MASM_OPT) $(_MASM_DEF_) pHelix86.asm
    $(MSVC42) $(MSC_OPT)  $(_DEFINES_) $(C_TEST) pHelix86.obj
    $(RUN_TEST) 
    @echo Success: MASM4.2 $(_DEFINES_) >> make.log

#++++++++++++++++++++++++++ msvc60
msvc60: masm60  
    @if exist testPhelix.pdb del testPhelix.pdb
    $(MSVC60) $(MSC_OPT)  $(_DEFINES_) $(C_ALL)
    $(RUN_TEST) 
    @echo Success: MSVC6.0 $(_DEFINES_) >> make.log

masm60:
    $(MASM) $(MASM_OPT) $(_MASM_DEF_) pHelix86.asm
    @if exist testPhelix.pdb del testPhelix.pdb
    $(MSVC60) $(MSC_OPT)  $(_DEFINES_) $(C_TEST) pHelix86.obj
    $(RUN_TEST) 
    @echo Success: MASM6.0 $(_DEFINES_) >> make.log

#++++++++++++++++++++++++++ check ANSI C compliance (no timer code)
ansi:
    $(GCC_32)  -ansi -D_ANSI_CHK $(GCC_OPT) $(_DEFINES_) -pedantic $(C_ALL) -o testPhelix.exe
    $(RUN_TEST)
    $(GCC_342) -ansi -D_ANSI_CHK $(GCC_OPT) $(_DEFINES_) -pedantic $(C_ALL) -o testPhelix.exe
    $(RUN_TEST)
    @if exist testPhelix.pdb del testPhelix.pdb
    $(MSVC42) /Za    -D_ANSI_CHK $(MSC_OPT) $(_DEFINES_) $(C_ALL) 
    $(RUN_TEST)
    @if exist testPhelix.pdb del testPhelix.pdb
    $(MSVC60) /Za    -D_ANSI_CHK $(MSC_OPT) $(_DEFINES_) $(C_ALL) 
    $(RUN_TEST)
    $(BCC32) -A      -D_ANSI_CHK $(BCC_OPT) $(_DEFINES_) $(C_ALL) 
    $(RUN_TEST)
    @echo Success: ANSI-C  $(_DEFINES_) >> make.log

#++++++++++++++++++++++++++ randomly mix C and assembly calls
mix:
    @if exist testPhelix.pdb del testPhelix.pdb
    $(MASM) $(MASM_OPT) $(_MASM_DEF_)  -DMIX_ASM pHelix86.asm
    $(MSVC42) $(MSC_OPT)  $(_DEFINES_) -DMIX_ASM $(C_ALL) pHelix86.obj
    $(RUN_TEST) 
    $(GCC_32)  $(GCC_OPT) -DMIX_ASM $(_DEFINES_) $(C_ALL) pHelix86.S -o testPhelix.exe 
    $(RUN_TEST)
    $(GCC_342) $(GCC_OPT) -DMIX_ASM $(_DEFINES_) $(C_ALL) pHelix86.S -o testPhelix.exe 
    $(RUN_TEST)
	$(BCC32) $(BCC_OPT) $(_DEFINES_) -DMIX_ASM -TDMIX_ASM $(C_ALL) phelix86.asm
	$(RUN_TEST)
    @echo Success: MIX  $(_DEFINES_) >> make.log

#++++++++++++++++++++++++++ test them all at once
test:   bcc tasm gcc gcc342 as msvc msvc60 ansi	mix  # test ALL compilers
    @echo ************************************************
    @echo ****** Test Successful: $(_CIPHER_)
    @echo ************************************************

all:   # recurse to try both settings: ECRYPT, Phelix
	@if exist make.log  del make.log
    make               -D_PERF test
    @echo .
    @echo .
    @echo .
    @echo .
    make  -DECRYPT_API -D_PERF test    # ECRYPT compiles
    @grep Success make.log

#++++++++++++++++++++++++++ quick test
quickTest:  bcc gcc
    @echo ************************************************
    @echo ****** Quick Test Successful: $(_CIPHER_)
    @echo ************************************************

quick:  # recurse to try both settings: ECRYPT, Phelix
    make                quickTest
    @echo .
    @echo .
    @echo .
    @echo .
    make  -DECRYPT_API  quickTest

#++++++++++++++++++++++++++ debugging and vectors
noAsm:  
    $(BCC32) $(BCC_OPT) -A -DALLOW_DEBUG_IO -D_ANSI_CHK -DNO_ASM=1  $(_DEFINES_) $(C_ALL)
    $(RUN_TEST) -k

vectors: noAsm
    $(RUN_TEST) -k -g    > phelixKAT.h
    $(RUN_TEST) -k -gTex > phelixKAT.tex


#++++++++++++++++++++++++++ debug the executable
db: 
    $(BCC32) $(BCC_OPT) -DALLOW_DEBUG_IO  $(_DEFINES_) $(C_ALL)

db_asm: 
    $(BCC32) $(BCC_OPT) -DALLOW_DEBUG_IO  $(_DEFINES_) $(C_TEST) pHelix86.asm

td32:   td
td:     db
    db.bat

#++++++++++++++++++++++++++ aliases
msvc:   msvc42
msc:    msvc42
gcc:    gcc320

#++++++++++++++++++++++++++ 
unix:
    copy *.c unix\*.*
    copy *.h unix\*.*
    copy *.S unix\*.*
    dos2unix unix\phelix.c
    dos2unix unix\testPhelix.c
    dos2unix unix\phelix.h
    dos2unix unix\platform.h
    dos2unix unix\ecrypt-config.h
    dos2unix unix\ecrypt-machine.h
    dos2unix unix\ecrypt-portable.h
    dos2unix unix\ecrypt-sync-ae.h
    dos2unix unix\strucmac.S
    dos2unix unix\phelix86.S
    xcopy /y unix\*.c     \\earth\u.dwhiting\phelix\*.c
    xcopy /y unix\*.h     \\earth\u.dwhiting\phelix\*.h
    xcopy /y unix\*.S     \\earth\u.dwhiting\phelix\*.S

#++++++++++++++++++++++++++ Put all the ecrypt files together
ecrypt:
    $(BCC32) $(BCC_OPT) -A -DECRYPT_API="ecrypt-sync-ae.h" -DANSI_CHK ecrypt-test.c phelix.c

    @-if exist ecrypt.zip del ecrypt.zip
    winzip    ecrypt.zip readme coversheet.txt IPstatement.txt
    winzip    ecrypt.zip tex\phelix.pdf tex\phelix.ps tex\*.tex tex\*.mp 
    winzip    ecrypt.zip tex\phelix.1 tex\phelix.2 tex\*.bbl tex\llncs.cls 
    winzip    ecrypt.zip makefile *.h *.c  *.inc *.asm *.S phelix86.obj testphelix.exe 
    winzip -v ecrypt.zip

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -