diff options
Diffstat (limited to 'Build/source/libs/pplib/pplib-src/src/Makefile')
-rw-r--r-- | Build/source/libs/pplib/pplib-src/src/Makefile | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/Build/source/libs/pplib/pplib-src/src/Makefile b/Build/source/libs/pplib/pplib-src/src/Makefile new file mode 100644 index 00000000000..de67505649a --- /dev/null +++ b/Build/source/libs/pplib/pplib-src/src/Makefile @@ -0,0 +1,99 @@ + +ifeq ($(ARCH),) + ARCH=x64 +endif + +UNAME:=$(shell uname) +ifeq ($(UNAME),Linux) + BUILDSUFFIX=_ux_$(ARCH) + SOEXT=.so + EXEEXT= +# SHAREDCOPTS=-fPIC + LFLAGS= + LIBS=-lm +else + BUILDSUFFIX=_win_$(ARCH) + SOEXT=.dll + EXEEXT=.exe +# SHAREDCOPTS=-DPPDLL + LFLAGS = -Wl,--output-def,$@.def,--out-implib,$@.a + LIBS= +endif + +CC=gcc +WLUIGI=-Wall -Wextra -Wunused -Wimplicit -Wreturn-type -Wdeclaration-after-statement -Wno-unknown-pragmas -Wmissing-prototypes -Wmissing-declarations -Wparentheses -Wswitch -Wtrigraphs -Wcast-qual -Wcast-align -Wwrite-strings -Wold-style-definition -Wpointer-arith +WHANS=-Wall -Wextra -Wcast-align -Wcast-qual -Wnested-externs -Wwrite-strings -Wdeclaration-after-statement -Wno-unknown-pragmas -Wpointer-arith +W=$(WLUIGI) + +CFLAGS=$(W) -O3 + +OBJEXT=$(BUILDSUFFIX).o + +PPALLOC=utilmem utilmemheap utilmemheapiof utilmeminfo +PPUTILS=utillog utilnumber utiliof utilmd5 utilsha utilcrypt +PPFILTERS=utilbasexx utilflate utillzw utilfpred +PPMODULES=ppheap pparray ppdict ppstream ppcrypt ppxref ppload + +OUTDIR=build +UTILSDIR=util + +PPSTATICALLOCOBJ=$(patsubst %, $(OUTDIR)/%$(OBJEXT), $(PPALLOC)) +PPSTATICUTILSOBJ=$(patsubst %, $(OUTDIR)/%$(OBJEXT), $(PPUTILS)) +PPSTATICFILTERSOBJ=$(patsubst %, $(OUTDIR)/%$(OBJEXT), $(PPFILTERS)) +PPSTATICOBJ=$(patsubst %, $(OUTDIR)/%$(OBJEXT), $(PPMODULES)) +PPSTATICLIB=$(OUTDIR)/libpp.static$(BUILDSUFFIX).a + +# dependencies +FLATEDIR=../zlib +FLATELIB=$(FLATEDIR)/libz.static$(BUILDSUFFIX).a +PPSTATICDEPS=$(FLATELIB) + +# tests +TESTDIR=../../pplib-tests +PPTEST1=$(OUTDIR)/pptest1$(EXEEXT) +PPTEST2=$(OUTDIR)/pptest2$(EXEEXT) +PPTEST3=$(OUTDIR)/pptest3$(EXEEXT) + +# includes +INC=-I $(UTILSDIR) +AUX=-I $(FLATEDIR) + +default: md $(PPSTATICLIB) $(PPTEST1) $(PPTEST2) $(PPTEST3) $(PPTEST4) + +md: + @[ -d $(OUTDIR) ] || mkdir -p $(OUTDIR) + +$(PPSTATICOBJ): $(OUTDIR)/%$(OBJEXT): %.c %.h + $(CC) $(CFLAGS) $(INC) -o $@ -c $< + +$(PPSTATICALLOCOBJ): $(OUTDIR)/%$(OBJEXT): $(UTILSDIR)/%.c $(UTILSDIR)/%.h + $(CC) $(CFLAGS) $(INC) -o $@ -c $< + +$(PPSTATICUTILSOBJ): $(OUTDIR)/%$(OBJEXT): $(UTILSDIR)/%.c $(UTILSDIR)/%.h + $(CC) $(CFLAGS) $(INC) -o $@ -c $< + +$(PPSTATICFILTERSOBJ): $(OUTDIR)/%$(OBJEXT): $(UTILSDIR)/%.c $(UTILSDIR)/%.h + $(CC) $(CFLAGS) $(INC) $(AUX) -o $@ -c $< + +$(PPSTATICLIB): $(PPSTATICOBJ) $(PPSTATICALLOCOBJ) $(PPSTATICUTILSOBJ) $(PPSTATICFILTERSOBJ) + ar rcs $@ $^ + +$(PPTEST1): $(PPSTATICLIB) pptest1.c + $(CC) $(CFLAGS) -o $(OUTDIR)/pptest1$(OBJEXT) -c pptest1.c + $(CC) -static-libgcc $(CFLAGS) -o $(PPTEST1) $(OUTDIR)/pptest1$(OBJEXT) $(PPSTATICLIB) $(PPSTATICDEPS) $(LIBS) + +$(PPTEST2): $(PPSTATICLIB) pptest2.c + $(CC) $(CFLAGS) -o $(OUTDIR)/pptest2$(OBJEXT) -c pptest2.c + $(CC) -static-libgcc $(CFLAGS) -o $(PPTEST2) $(OUTDIR)/pptest2$(OBJEXT) $(PPSTATICLIB) $(PPSTATICDEPS) $(LIBS) + +$(PPTEST3): $(PPSTATICLIB) pptest3.c + $(CC) $(CFLAGS) -I util -o $(OUTDIR)/pptest3$(OBJEXT) -c pptest3.c + $(CC) -static-libgcc $(CFLAGS) -o $(PPTEST3) $(OUTDIR)/pptest3$(OBJEXT) $(PPSTATICLIB) $(PPSTATICDEPS) $(LIBS) + +clean: + rm -f $(OUTDIR)/*$(OBJEXT) $(OUTDIR)/*.a $(OUTDIR)/*$(EXEEXT) + +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 |