diff --git a/Makefile b/Makefile index 293e10e..1eba5af 100755 --- a/Makefile +++ b/Makefile @@ -1,34 +1,16 @@ +DESTDIR := $(CURDIR)/$(DESTDIR) -MAKEFILE = Makefile +build: + $(MAKE) -C src -SUBTARGETS = \ - sub-src \ - sub-test \ +check: build + $(MAKE) -C test -all: $(SUBTARGETS) - -sub-src: FORCE - cd src && \ - $(MAKE) -f $(MAKEFILE) - @cd .. - -sub-test: FORCE - cd test && \ - $(MAKE) -f $(MAKEFILE) - @cd .. - - - -clean: - cd src && \ - $(MAKE) -f $(MAKEFILE) clean - @cd .. - cd test && \ - $(MAKE) -f $(MAKEFILE) clean - @cd .. - - - - -FORCE: +install: + $(MAKE) -C src install + $(MAKE) -C include install +.PHONY: clean +clean: + $(MAKE) -C src clean + $(MAKE) -C test clean diff --git a/include/Makefile b/include/Makefile new file mode 100644 index 0000000..2ecfb8b --- /dev/null +++ b/include/Makefile @@ -0,0 +1,8 @@ +install: + mkdir -p $(DESTDIR)/usr/include/loki + mkdir -p $(DESTDIR)/usr/include/loki/flex + mkdir -p $(DESTDIR)/usr/include/loki/yasli + + install loki/*.h $(DESTDIR)/usr/include/loki + install loki/flex/*.h $(DESTDIR)/usr/include/loki/flex + install loki/yasli/*.h $(DESTDIR)/usr/include/loki/yasli diff --git a/make.mingw.bat b/make.mingw.bat index 5007ec6..bb38341 100755 --- a/make.mingw.bat +++ b/make.mingw.bat @@ -8,5 +8,5 @@ set LOKI_TMP= if not exist lib\ mkdir lib -mingw32-make +mingw32-make check diff --git a/src/Makefile b/src/Makefile index 31a30e3..b8ecb15 100755 --- a/src/Makefile +++ b/src/Makefile @@ -1,42 +1,14 @@ - - -CPP = g++ -CC = gcc OBJ = Singleton.o SmallObj.o OrderedStatic.o -LINKOBJ = Singleton.o SmallObj.o OrderedStatic.o -LIBS = -CXXINCS = -I..\include BIN = ../lib/libloki.a -CXXFLAGS = $(CXXINCS) -O2 -DNDEBUG -CFLAGS = $(INCS) -g3 -RM = rm -f -CHK_DIR_EXISTS= if not exist -MKDIR = mkdir +CXXFLAGS = -I../include -Wall -O2 -.PHONY: all all-before all-after clean clean-custom +$(BIN): $(OBJ) + ar rs $(BIN) $(OBJ) -all: all-before ../lib/libloki.a all-after +install: $(BIN) + mkdir -p $(DESTDIR)/usr/lib + install $(BIN) $(DESTDIR)/usr/lib - -clean: clean-custom - ${RM} $(OBJ) $(BIN) - -$(BIN): $(LINKOBJ) - ar r $(BIN) $(LINKOBJ) - ranlib $(BIN) - -check_tmp: - @$(CHK_DIR_EXISTS) $(MKDIR) tmp - -check_lib: - @$(CHK_DIR_EXISTS) ..\lib\ $(MKDIR) ..\lib\ - -Singleton.o: Singleton.cpp - $(CPP) -c Singleton.cpp -o Singleton.o $(CXXFLAGS) - -SmallObj.o: SmallObj.cpp - $(CPP) -c SmallObj.cpp -o SmallObj.o $(CXXFLAGS) - -OrderedStatic.o: OrderedStatic.cpp - $(CPP) -c OrderedStatic.cpp -o OrderedStatic.o $(CXXFLAGS) - +.PHONY: clean +clean: + rm -f $(OBJ) $(BIN) diff --git a/test/Factory/Makefile b/test/Factory/Makefile index 27ddba0..9946673 100755 --- a/test/Factory/Makefile +++ b/test/Factory/Makefile @@ -1,31 +1,11 @@ - - -CPP = g++ -CC = gcc -OBJ = Factory.o -LINKOBJ = Factory.o -CXXINCS = -I./../../include +OBJ = Factory.o +BIN = main-gcc +CXXFLAGS = -I../../include -Wall -O2 LIBS = -L../../lib -lloki -CXXFLAGS = $(CXXINCS) -O2 -DNDEBUG -BIN = main-gcc.exe -RM = rm -f -CHK_DIR_EXISTS= if not exist -MKDIR = mkdir - -.PHONY: all all-before all-after clean clean-custom - -all: all-before $(BIN) all-after - - -clean: clean-custom - ${RM} $(OBJ) $(BIN) $(BIN): $(OBJ) - $(CPP) $(LINKOBJ) -o main-gcc.exe $(LIBS) - -check_tmp: - @$(CHK_DIR_EXISTS) "" $(MKDIR) "tmp" - -Factory.o: Factory.cpp - $(CPP) -c Factory.cpp -o Factory.o $(CXXFLAGS) + $(CXX) -o $(BIN) $(OBJ) $(LIBS) +.PHONY: clean +clean: + rm -f $(OBJ) $(BIN) diff --git a/test/Function/Makefile b/test/Function/Makefile new file mode 100644 index 0000000..d7f0d55 --- /dev/null +++ b/test/Function/Makefile @@ -0,0 +1,11 @@ +OBJ = FunctionTest.o +BIN = main-gcc +CXXFLAGS = -I../../include -Wall -O2 +LIBS = -L../../lib -lloki + +$(BIN): $(OBJ) + $(CXX) -o $(BIN) $(OBJ) $(LIBS) + +.PHONY: clean +clean: + rm -f $(OBJ) $(BIN) diff --git a/test/Longevity/Makefile b/test/Longevity/Makefile index c7d783f..8bf4dcb 100755 --- a/test/Longevity/Makefile +++ b/test/Longevity/Makefile @@ -1,32 +1,20 @@ - - -CPP = g++ -CC = gcc -OBJ = main.o -LINKOBJ = main.o -CXXINCS = -I./../../include +OBJ1 = main.o +OBJ2 = main2.o +BIN1 = main-gcc +BIN2 = main2-gcc +CXXFLAGS = -I../../include -Wall -O2 LIBS = -L../../lib -lloki -CXXFLAGS = $(CXXINCS) -O2 -DNDEBUG -BIN = main-gcc.exe -RM = rm -f -CHK_DIR_EXISTS= if not exist -MKDIR = mkdir -.PHONY: all all-before all-after clean clean-custom +.PHONY: all +all: $(BIN1) $(BIN2) -all: all-before $(BIN) all-after - - -clean: clean-custom - ${RM} $(OBJ) $(BIN) - -$(BIN): $(OBJ) - $(CPP) $(LINKOBJ) -o main-gcc.exe $(LIBS) - -check_tmp: - @$(CHK_DIR_EXISTS) "" $(MKDIR) "tmp" - -Factory.o: Factory.cpp - $(CPP) -c main.cpp -o main.o $(CXXFLAGS) +$(BIN1): $(OBJ1) + $(CXX) -o $(BIN1) $(OBJ1) $(LIBS) +$(BIN2): $(OBJ2) + $(CXX) -o $(BIN2) $(OBJ2) $(LIBS) +.PHONY: clean +clean: + rm -f $(OBJ1) $(BIN1) + rm -f $(OBJ2) $(BIN2) diff --git a/test/Makefile b/test/Makefile index 1f00c18..de2a024 100755 --- a/test/Makefile +++ b/test/Makefile @@ -1,110 +1,20 @@ +SUBTARGETS = Factory flex_string Longevity OrderedStatic RegressionTest \ + SafeFormat ScopeGuard Singleton SmallObj Visitor -MAKEFILE = Makefile - -SUBTARGETS = \ - sub-Factory \ - sub-flex_string \ - sub-Longevity \ - sub-OrderedStatic \ - sub-RegressionTest \ - sub-SafeFormat \ - sub-ScopeGuard \ - sub-Singleton \ - sub-SmallObj \ - sub-Visitor - +.PHONY: all $(SUBTARGETS) all: $(SUBTARGETS) -sub-Factory: FORCE - cd Factory && \ - $(MAKE) -f $(MAKEFILE) - @cd .. - -sub-flex_string: FORCE - cd flex_string && \ - $(MAKE) -f $(MAKEFILE) - @cd .. +$(SUBTARGETS): + $(MAKE) -C $@ -sub-Longevity: FORCE - cd Longevity && \ - $(MAKE) -f $(MAKEFILE) && \ - $(MAKE) -f $(MAKEFILE)2 - @cd .. - -sub-OrderedStatic: FORCE - cd OrderedStatic && \ - $(MAKE) -f $(MAKEFILE) - @cd .. - -sub-RegressionTest: FORCE - cd RegressionTest && \ - $(MAKE) -f $(MAKEFILE) - @cd .. - -sub-SafeFormat: FORCE - cd SafeFormat && \ - $(MAKE) -f $(MAKEFILE) - @cd .. - -sub-ScopeGuard: FORCE - cd ScopeGuard && \ - $(MAKE) -f $(MAKEFILE) - @cd .. - -sub-Singleton: FORCE - cd Singleton && \ - $(MAKE) -f $(MAKEFILE)-DeletableSingleton && \ - $(MAKE) -f $(MAKEFILE)-Phoenix && \ - $(MAKE) -f $(MAKEFILE)-Dependencies - @cd .. - -sub-SmallObj: FORCE - cd SmallObj && \ - $(MAKE) -f $(MAKEFILE) && \ - $(MAKE) -f $(MAKEFILE)-SmallSingleton - @cd .. - -sub-Visitor: FORCE - cd Visitor && \ - $(MAKE) -f $(MAKEFILE) - @cd .. - - clean: - cd Factory && \ - $(MAKE) -f $(MAKEFILE) clean - @cd .. - cd flex_string && \ - $(MAKE) -f $(MAKEFILE) clean - @cd .. - cd Longevity && \ - $(MAKE) -f $(MAKEFILE) clean - @cd .. - cd OrderedStatic && \ - $(MAKE) -f $(MAKEFILE) clean - @cd .. - cd RegressionTest && \ - $(MAKE) -f $(MAKEFILE) clean - @cd .. - cd SafeFormat && \ - $(MAKE) -f $(MAKEFILE) clean - @cd .. - cd SmallObj && \ - $(MAKE) -f $(MAKEFILE) clean - @cd .. - cd ScopeGuard && \ - $(MAKE) -f $(MAKEFILE) clean - @cd .. - cd Singleton && \ - $(MAKE) -f $(MAKEFILE)-DeletableSingleton clean && \ - $(MAKE) -f $(MAKEFILE)-Phoenix clean && \ - $(MAKE) -f $(MAKEFILE)-Dependencies clean - @cd .. - - cd Visitor && \ - $(MAKE) -f $(MAKEFILE) clean - @cd .. - - -FORCE: - + $(MAKE) -C Factory clean + $(MAKE) -C flex_string clean + $(MAKE) -C Longevity clean + $(MAKE) -C OrderedStatic clean + $(MAKE) -C RegressionTest clean + $(MAKE) -C SafeFormat clean + $(MAKE) -C ScopeGuard clean + $(MAKE) -C Singleton clean + $(MAKE) -C SmallObj clean + $(MAKE) -C Visitor clean diff --git a/test/OrderedStatic/Makefile b/test/OrderedStatic/Makefile index 61044a2..d31c556 100755 --- a/test/OrderedStatic/Makefile +++ b/test/OrderedStatic/Makefile @@ -1,32 +1,11 @@ - - -CPP = g++ -CC = gcc -OBJ = main.o -LINKOBJ = main.o -CXXINCS = -I./../../include -I. +OBJ = main.o +BIN = main-gcc +CXXFLAGS = -I../../include -Wall -O2 LIBS = -L../../lib -lloki -CXXFLAGS = $(CXXINCS) -O2 -DNDEBUG -BIN = main-gcc.exe -RM = rm -f -CHK_DIR_EXISTS= if not exist -MKDIR = mkdir - -.PHONY: all all-before all-after clean clean-custom - -all: all-before $(BIN) all-after - - -clean: clean-custom - ${RM} $(OBJ) $(BIN) $(BIN): $(OBJ) - $(CPP) $(LINKOBJ) -o main-gcc.exe $(LIBS) - -check_tmp: - @$(CHK_DIR_EXISTS) "" $(MKDIR) "tmp" - -main.o: main.cpp - $(CPP) -c main.cpp -o main.o $(CXXFLAGS) - + $(CXX) -o $(BIN) $(OBJ) $(LIBS) +.PHONY: clean +clean: + rm -f $(OBJ) $(BIN) diff --git a/test/RegressionTest/Makefile b/test/RegressionTest/Makefile index fb9edf3..007546d 100755 --- a/test/RegressionTest/Makefile +++ b/test/RegressionTest/Makefile @@ -1,30 +1,11 @@ - - -CPP = g++ -CC = gcc -OBJ = Test.o -LINKOBJ = Test.o -CXXINCS = -I./../../include -CXXFLAGS = $(CXXINCS) -O2 -DNDEBUG -BIN = main-gcc.exe -RM = rm -f -CHK_DIR_EXISTS= if not exist -MKDIR = mkdir - -.PHONY: all all-before all-after clean clean-custom - -all: all-before $(BIN) all-after - - -clean: clean-custom - ${RM} $(OBJ) $(BIN) +OBJ = Test.o +BIN = main-gcc +CXXFLAGS = -I../../include -Wall -O2 +LIBS = -L../../lib -lloki $(BIN): $(OBJ) - $(CPP) $(LINKOBJ) -o main-gcc.exe $(LIBS) - -check_tmp: - @$(CHK_DIR_EXISTS) "" $(MKDIR) "tmp" - -Test.o: Test.cpp - $(CPP) -c Test.cpp -o Test.o $(CXXFLAGS) + $(CXX) -o $(BIN) $(OBJ) $(LIBS) +.PHONY: clean +clean: + rm -f $(OBJ) $(BIN) diff --git a/test/SafeFormat/Makefile b/test/SafeFormat/Makefile index 451386e..d31c556 100755 --- a/test/SafeFormat/Makefile +++ b/test/SafeFormat/Makefile @@ -1,30 +1,11 @@ - - -CPP = g++ -CC = gcc -OBJ = main.o -LINKOBJ = main.o -CXXINCS = -I./../../include -CXXFLAGS = $(CXXINCS) -O2 -DNDEBUG -BIN = main-gcc.exe -RM = rm -f -CHK_DIR_EXISTS= if not exist -MKDIR = mkdir - -.PHONY: all all-before all-after clean clean-custom - -all: all-before $(BIN) all-after - - -clean: clean-custom - ${RM} $(OBJ) $(BIN) +OBJ = main.o +BIN = main-gcc +CXXFLAGS = -I../../include -Wall -O2 +LIBS = -L../../lib -lloki $(BIN): $(OBJ) - $(CPP) $(LINKOBJ) -o main-gcc.exe $(LIBS) - -check_tmp: - @$(CHK_DIR_EXISTS) "" $(MKDIR) "tmp" - -main.o: main.cpp - $(CPP) -c main.cpp -o main.o $(CXXFLAGS) + $(CXX) -o $(BIN) $(OBJ) $(LIBS) +.PHONY: clean +clean: + rm -f $(OBJ) $(BIN) diff --git a/test/ScopeGuard/Makefile b/test/ScopeGuard/Makefile index 61044a2..d31c556 100755 --- a/test/ScopeGuard/Makefile +++ b/test/ScopeGuard/Makefile @@ -1,32 +1,11 @@ - - -CPP = g++ -CC = gcc -OBJ = main.o -LINKOBJ = main.o -CXXINCS = -I./../../include -I. +OBJ = main.o +BIN = main-gcc +CXXFLAGS = -I../../include -Wall -O2 LIBS = -L../../lib -lloki -CXXFLAGS = $(CXXINCS) -O2 -DNDEBUG -BIN = main-gcc.exe -RM = rm -f -CHK_DIR_EXISTS= if not exist -MKDIR = mkdir - -.PHONY: all all-before all-after clean clean-custom - -all: all-before $(BIN) all-after - - -clean: clean-custom - ${RM} $(OBJ) $(BIN) $(BIN): $(OBJ) - $(CPP) $(LINKOBJ) -o main-gcc.exe $(LIBS) - -check_tmp: - @$(CHK_DIR_EXISTS) "" $(MKDIR) "tmp" - -main.o: main.cpp - $(CPP) -c main.cpp -o main.o $(CXXFLAGS) - + $(CXX) -o $(BIN) $(OBJ) $(LIBS) +.PHONY: clean +clean: + rm -f $(OBJ) $(BIN) diff --git a/test/Singleton/Makefile b/test/Singleton/Makefile new file mode 100644 index 0000000..1fa1d3c --- /dev/null +++ b/test/Singleton/Makefile @@ -0,0 +1,26 @@ +OBJ1 = DeletableSingleton.o +OBJ2 = Dependencies.o +OBJ3 = Phoenix.o +BIN1 = deletable-singleton-gcc +BIN2 = dependencies-gcc +BIN3 = phoenix-gcc +CXXFLAGS = -I../../include -Wall -O2 +LIBS = -L../../lib -lloki + +.PHONY: all +all: $(BIN1) $(BIN2) $(BIN3) + +$(BIN1): $(OBJ1) + $(CXX) -o $(BIN1) $(OBJ1) $(LIBS) + +$(BIN2): $(OBJ2) + $(CXX) -o $(BIN2) $(OBJ2) $(LIBS) + +$(BIN3): $(OBJ3) + $(CXX) -o $(BIN3) $(OBJ3) $(LIBS) + +.PHONY: clean +clean: + rm -f $(OBJ1) $(BIN1) + rm -f $(OBJ2) $(BIN2) + rm -f $(OBJ3) $(BIN3) diff --git a/test/SmallObj/Makefile b/test/SmallObj/Makefile index ec7557b..24cadb5 100755 --- a/test/SmallObj/Makefile +++ b/test/SmallObj/Makefile @@ -1,35 +1,20 @@ +OBJ1 = SmallObjBench.o +OBJ2 = SmallSingleton.o +BIN1 = small-obj-bench-gcc +BIN2 = small-singleton-gcc +CXXFLAGS = -I../../include -Wall -fexpensive-optimizations -O3 +LIBS = -L../../lib -lloki +.PHONY: all +all: $(BIN1) $(BIN2) -CPP = g++ -CC = gcc -OBJ = SmallObjBench.o SmallObj.o Singleton.o -LINKOBJ = SmallObjBench.o SmallObj.o Singleton.o -CXXINCS = -I./../../include -I./../../include/loki -CXXFLAGS = $(CXXINCS) -DNDEBUG -fexpensive-optimizations -O3 -BIN = main-gcc.exe -RM = rm -f -CHK_DIR_EXISTS= if not exist -MKDIR = mkdir +$(BIN1): $(OBJ1) + $(CXX) -o $(BIN1) $(OBJ1) $(LIBS) -.PHONY: all all-before all-after clean clean-custom +$(BIN2): $(OBJ2) + $(CXX) -o $(BIN2) $(OBJ2) $(LIBS) -all: clean all-before $(BIN) all-after - - -clean: clean-custom - ${RM} $(OBJ) $(BIN) - -$(BIN): $(OBJ) - $(CPP) $(LINKOBJ) -o main-gcc.exe $(LIBS) - -check_tmp: - @$(CHK_DIR_EXISTS) "" $(MKDIR) "tmp" - -SmallObjBench.o: SmallObjBench.cpp - $(CPP) -c SmallObjBench.cpp -o SmallObjBench.o $(CXXFLAGS) - -SmallObj.o: ../../src/SmallObj.cpp - $(CPP) -c ../../src/SmallObj.cpp -o SmallObj.o $(CXXFLAGS) - -Singleton.o: ../../src/Singleton.cpp - $(CPP) -c ../../src/Singleton.cpp -o Singleton.o $(CXXFLAGS) \ No newline at end of file +.PHONY: clean +clean: + rm -f $(OBJ1) $(BIN1) + rm -f $(OBJ2) $(BIN2) diff --git a/test/Visitor/Makefile b/test/Visitor/Makefile index 61044a2..d31c556 100755 --- a/test/Visitor/Makefile +++ b/test/Visitor/Makefile @@ -1,32 +1,11 @@ - - -CPP = g++ -CC = gcc -OBJ = main.o -LINKOBJ = main.o -CXXINCS = -I./../../include -I. +OBJ = main.o +BIN = main-gcc +CXXFLAGS = -I../../include -Wall -O2 LIBS = -L../../lib -lloki -CXXFLAGS = $(CXXINCS) -O2 -DNDEBUG -BIN = main-gcc.exe -RM = rm -f -CHK_DIR_EXISTS= if not exist -MKDIR = mkdir - -.PHONY: all all-before all-after clean clean-custom - -all: all-before $(BIN) all-after - - -clean: clean-custom - ${RM} $(OBJ) $(BIN) $(BIN): $(OBJ) - $(CPP) $(LINKOBJ) -o main-gcc.exe $(LIBS) - -check_tmp: - @$(CHK_DIR_EXISTS) "" $(MKDIR) "tmp" - -main.o: main.cpp - $(CPP) -c main.cpp -o main.o $(CXXFLAGS) - + $(CXX) -o $(BIN) $(OBJ) $(LIBS) +.PHONY: clean +clean: + rm -f $(OBJ) $(BIN) diff --git a/test/flex_string/Makefile b/test/flex_string/Makefile index e770dce..6549e6c 100755 --- a/test/flex_string/Makefile +++ b/test/flex_string/Makefile @@ -1,31 +1,10 @@ - - -CPP = g++ -CC = gcc -OBJ = main.o -LINKOBJ = main.o -CXXINCS = -I./../../include -CXXFLAGS = $(CXXINCS) -O2 -DNDEBUG -BIN = main-gcc.exe -RM = rm -f -CHK_DIR_EXISTS= if not exist -MKDIR = mkdir - -.PHONY: all all-before all-after clean clean-custom - -all: all-before $(BIN) all-after - - -clean: clean-custom - ${RM} $(OBJ) $(BIN) +OBJ = main.o +BIN = main-gcc +CXXFLAGS = -I../../include -Wall -O2 $(BIN): $(OBJ) - $(CPP) $(LINKOBJ) -o main-gcc.exe $(LIBS) - -check_tmp: - @$(CHK_DIR_EXISTS) "" $(MKDIR) "tmp" - - -main.o: main.cpp - $(CPP) -c main.cpp -o main.o $(CXXFLAGS) + $(CXX) -o $(BIN) $(OBJ) +.PHONY: clean +clean: + rm -f $(OBJ) $(BIN)