diff options
Diffstat (limited to 'Build/source/libs/pplib/pplib-src/src/Makefile.vc')
-rw-r--r-- | Build/source/libs/pplib/pplib-src/src/Makefile.vc | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/Build/source/libs/pplib/pplib-src/src/Makefile.vc b/Build/source/libs/pplib/pplib-src/src/Makefile.vc new file mode 100644 index 00000000000..481d9b20ab7 --- /dev/null +++ b/Build/source/libs/pplib/pplib-src/src/Makefile.vc @@ -0,0 +1,98 @@ + +CC=cl /nologo +LN=link /nologo +AR=lib /nologo # LIB variable has a special meaning for msvc + +CFLAGS=/W3 /D_CRT_SECURE_NO_DEPRECATE /O2 + +# hans +# 5045: spectre +# 4820: local vars with same name as outer variable +# 4456: local vars with same name as outer variable +# 4457: local vars with same function parameter +# 4668: missing defines +# 4244: assignment in conditional expression +# 4127: constant conditional expression +# 4131: old style declarator +# 4464: relative include path +# 4201: nonstandard extension used: nameless struct/union +# 4710: no inlined +# 4711: inline expansion +# 4706: assignment in conditionals + +#WFLAGS= /W3 /D_CRT_SECURE_NO_DEPRECATE +WFLAGS= /Wall /D_CRT_SECURE_NO_DEPRECATE /wd5045 /wd4820 /wd4456 /wd4457 /wd4668 /wd4244 /wd4127 /wd4131 /wd4464 /wd4201 /wd4710 /wd4711 +CFLAGS= $(WFLAGS) /O2 + +#LFLAGS = /NODEFAULTLIB:LIBCMT # produces binary dependent from redistributable +LFLAGS = /NOIMPLIB + +PPALLOC=utilmem.c utilmemheap.c utilmemheapiof.c utilmeminfo.c +PPUTILS=utillog.c utilnumber.c utiliof.c utilmd5.c utilsha.c utilcrypt.c +PPFILTERS=utilbasexx.c utilflate.c utillzw.c utilfpred.c +PPMODULES=ppheap.c pparray.c ppdict.c ppstream.c ppcrypt.c ppxref.c ppload.c + +OUTDIR=build +UTILSDIR=util + +PPSTATICALLOCOBJ=$(PPALLOC:.c=.obj) +PPSTATICALLOCOBJ=$(PPSTATICALLOCOBJ:util=build\util) +PPSTATICUTILSOBJ=$(PPUTILS:.c=.obj) +PPSTATICUTILSOBJ=$(PPSTATICUTILSOBJ:util=build\util) +PPSTATICFILTERSOBJ=$(PPFILTERS:.c=.obj) +PPSTATICFILTERSOBJ=$(PPSTATICFILTERSOBJ:util=build\util) +PPSTATICOBJ=$(PPMODULES:.c=.obj) +PPSTATICOBJ=$(PPSTATICOBJ:pp=build\pp) +PPSTATICLIB=build\pp.lib + +# dependencies +FLATEDIR=..\zlib +FLATELIB=$(FLATEDIR)\zlib.static.lib +PPSTATICDEPS=$(FLATELIB) + +# tests +TESTDIR=..\..\pplib-tests +PPTEST1=build\pptest1.exe +PPTEST2=build\pptest2.exe +PPTEST3=build\pptest3.exe + +# includes +INC=/I $(UTILSDIR) +AUX=/I $(FLATEDIR) + +default: $(PPSTATICLIB) $(PPTEST1) $(PPTEST2) $(PPTEST3) $(PPTEST4) + +$(PPSTATICOBJ): $(*B).c + $(CC) $(CFLAGS) $(INC) /Fo:$@ /c $** + +$(PPSTATICALLOCOBJ): $(UTILSDIR)\$(*B).c + $(CC) $(CFLAGS) $(INC) /Fo:$@ /c $** + +$(PPSTATICUTILSOBJ): $(UTILSDIR)\$(*B).c + $(CC) $(CFLAGS) $(INC) /Fo:$@ /c $** + +$(PPSTATICFILTERSOBJ): $(UTILSDIR)\$(*B).c + $(CC) $(CFLAGS) $(INC) $(AUX) /Fo:$@ /c $** + +$(PPSTATICLIB): $(PPSTATICOBJ) $(PPSTATICALLOCOBJ) $(PPSTATICUTILSOBJ) $(PPSTATICFILTERSOBJ) + $(AR) /OUT:$@ $** + +$(PPTEST1): $(PPSTATICLIB) pptest1.c + $(CC) $(CFLAGS) /Fo:build\pptest1.obj /c pptest1.c + $(LN) $(LFLAGS) /OUT:$(PPTEST1) build\pptest1.obj $(PPSTATICLIB) $(PPSTATICDEPS) $(LIBS) + +$(PPTEST2): $(PPSTATICLIB) pptest2.c + $(CC) $(CFLAGS) /Fo:build\pptest2.obj /c pptest2.c + $(LN) $(LFLAGS) /OUT:$(PPTEST2) build\pptest2.obj $(PPSTATICLIB) $(PPSTATICDEPS) $(LIBS) + +$(PPTEST3): $(PPSTATICLIB) pptest3.c + $(CC) $(CFLAGS) /I util /Fo:build\pptest3.obj /c pptest3.c + $(LN) $(LFLAGS) /OUT:$(PPTEST3) build\pptest3.obj $(PPSTATICLIB) $(PPSTATICDEPS) $(LIBS) + +clean: + del /q build\*.obj build\*.lib build\*.exe + +test: $(PPTEST1) $(PPTEST2) $(PPTEST3) + build\pptest1 $(TESTDIR)\*.pdf $(TESTDIR)/crypt\*.pdf >pptest1.log + build\pptest2 $(TESTDIR)\*.pdf $(TESTDIR)/crypt\*.pdf >pptest2.log + build\pptest3 $(TESTDIR)\*.pdf $(TESTDIR)/crypt\*.pdf >pptest3.log |