- Various makefile improvements (better mingw support, easier to add new sources)

- Include loki/StrongPtr.hpp, not Loki/StrongPtr.hpp (test/SmartPtr)


git-svn-id: svn://svn.code.sf.net/p/loki-lib/code/trunk@638 7ec92016-0320-0410-acc4-a06ded1c099a
This commit is contained in:
lfittl 2006-04-18 07:29:41 +00:00
parent cdc57d88aa
commit 85a490c387
23 changed files with 340 additions and 280 deletions

View file

@ -1,10 +1,12 @@
BIN = DeletableSingleton
CXXFLAGS = -Wall -Wold-style-cast -Wundef -Wsign-compare -Wconversion -Wpointer-arith -pedantic -O2
CPPFLAGS = -I../../include -DNDEBUG
LDFLAGS = -L../../lib
LDLIBS = -lloki
BIN = DeletableSingleton$(BIN_SUFFIX)
SRC = DeletableSingleton.cpp
OBJ = $(SRC:.cpp=.o)
.PHONY: build clean
build: $(BIN)
.PHONY: all clean
all: $(BIN)
clean:
rm -f $(BIN) $(BIN).exe $(BIN).o
$(RM) $(BIN)
$(RM) $(OBJ)
$(BIN): $(OBJ)
$(CXX) $(LDFLAGS) -o $@ $^ $(LDLIBS)

View file

@ -1,10 +1,12 @@
BIN = Factory
CXXFLAGS = -Wall -Wold-style-cast -Wundef -Wsign-compare -Wconversion -Wpointer-arith -pedantic -O2
CPPFLAGS = -I../../include -DNDEBUG
LDFLAGS = -L../../lib
LDLIBS = -lloki
BIN = Factory$(BIN_SUFFIX)
SRC = Factory.cpp
OBJ = $(SRC:.cpp=.o)
.PHONY: build clean
build: $(BIN)
.PHONY: all clean
all: $(BIN)
clean:
rm -f $(BIN) $(BIN).exe $(BIN).o
$(RM) $(BIN)
$(RM) $(OBJ)
$(BIN): $(OBJ)
$(CXX) $(LDFLAGS) -o $@ $^ $(LDLIBS)

View file

@ -1,10 +1,13 @@
BIN = FunctionTest
CXXFLAGS = -Wall -Wold-style-cast -Wundef -Wsign-compare -Wconversion -Wpointer-arith -pedantic -O2
CPPFLAGS = -I../../include -DNDEBUG
LDFLAGS = -L../../lib
LDLIBS = -lloki -lboost_test_exec_monitor
BIN = FunctionTest$(BIN_SUFFIX)
SRC = FunctionTest.cpp
OBJ = $(SRC:.cpp=.o)
override LDLIBS += -lboost_test_exec_monitor
.PHONY: build clean
build: $(BIN)
.PHONY: all clean
all: $(BIN)
clean:
rm -f $(BIN) $(BIN).exe $(BIN).o
$(RM) $(BIN)
$(RM) $(OBJ)
$(BIN): $(OBJ)
$(CXX) $(LDFLAGS) -o $@ $^ $(LDLIBS)

View file

@ -1,10 +1,12 @@
BIN = main
CXXFLAGS = -Wall -Wold-style-cast -Wundef -Wsign-compare -Wconversion -Wpointer-arith -pedantic -O2
CPPFLAGS = -I../../include -DNDEBUG
LDFLAGS = -L../../lib
LDLIBS = -lloki
BIN = main$(BIN_SUFFIX)
SRC = main.cpp
OBJ = $(SRC:.cpp=.o)
.PHONY: build clean
build: $(BIN)
.PHONY: all clean
all: $(BIN)
clean:
rm -f $(BIN) $(BIN).exe $(BIN).o
$(RM) $(BIN)
$(RM) $(OBJ)
$(BIN): $(OBJ)
$(CXX) $(LDFLAGS) -o $@ $^ $(LDLIBS)

View file

@ -1,11 +1,21 @@
BIN1 = main
BIN2 = main2
CXXFLAGS = -Wall -Wold-style-cast -Wundef -Wsign-compare -Wconversion -Wpointer-arith -pedantic -fexpensive-optimizations -O3
CPPFLAGS = -I../../include -DNDEBUG
LDFLAGS = -L../../lib
LDLIBS = -lloki
BIN1 = main$(BIN_SUFFIX)
SRC1 = main.cpp
OBJ1 = $(SRC1:.cpp=.o)
BIN2 = main2$(BIN_SUFFIX)
SRC2 = main2.cpp
OBJ2 = $(SRC2:.cpp=.o)
override CXXFLAGS = $(CXXWARNFLAGS) -g -fexpensive-optimizations -O3
.PHONY: build clean
build: $(BIN1) $(BIN2)
.PHONY: all clean
all: $(BIN1) $(BIN2)
clean:
rm -f $(BIN1) $(BIN2) $(BIN1).exe $(BIN1).o $(BIN2).exe $(BIN2).o
$(RM) $(BIN1)
$(RM) $(OBJ1)
$(RM) $(BIN2)
$(RM) $(OBJ2)
$(BIN1): $(OBJ1)
$(CXX) $(LDFLAGS) -o $@ $^ $(LDLIBS)
$(BIN2): $(OBJ2)
$(CXX) $(LDFLAGS) -o $@ $^ $(LDLIBS)

View file

@ -1,23 +1,20 @@
SUBTARGETS = \
DeletableSingleton \
Factory \
Longevity \
OrderedStatic \
Pimpl \
Register \
RegressionTest \
SafeFormat \
ScopeGuard \
Singleton \
SmallObj \
SmartPtr \
Visitor \
flex_string \
SingletonDll
SUBTARGETS_CLEAN = $(foreach SUBTARGET,$(SUBTARGETS),$(SUBTARGET)-clean)
export CPPFLAGS = -I../../include -DNDEBUG
export LDFLAGS = -L../../lib
export LDLIBS = -lloki
.PHONY: clean all $(SUBTARGETS) $(SUBTARGETS_CLEAN)
ifeq ($(OS),Windows)
export BIN_SUFFIX = .exe
else
export BIN_SUFFIX =
endif
SUBTARGETS_ORIG := $(patsubst %/,%,$(dir $(wildcard */Makefile)))
SUBTARGETS_FILTER_OUT = Function
SUBTARGETS := $(filter-out $(SUBTARGETS_FILTER_OUT),$(SUBTARGETS_ORIG))
SUBTARGETS_CLEAN := $(addsuffix -clean,$(SUBTARGETS))
.PHONY: all clean $(SUBTARGETS) $(SUBTARGETS_CLEAN)
all: $(SUBTARGETS)
clean: $(SUBTARGETS_CLEAN)

View file

@ -1,10 +1,12 @@
BIN = main
CXXFLAGS = -Wall -Wold-style-cast -Wundef -Wsign-compare -Wconversion -Wpointer-arith -pedantic -O2
CPPFLAGS = -I../../include -DNDEBUG
LDFLAGS = -L../../lib
LDLIBS = -lloki
BIN = main$(BIN_SUFFIX)
SRC = main.cpp
OBJ = $(SRC:.cpp=.o)
.PHONY: build clean
build: $(BIN)
.PHONY: all clean
all: $(BIN)
clean:
rm -f $(BIN) $(BIN).exe $(BIN).o
$(RM) $(BIN)
$(RM) $(OBJ)
$(BIN): $(OBJ)
$(CXX) $(LDFLAGS) -o $@ $^ $(LDLIBS)

View file

@ -1,10 +1,12 @@
BIN = main
CXXFLAGS = -Wall -Wold-style-cast -Wundef -Wsign-compare -Wconversion -Wpointer-arith -pedantic -O2
CPPFLAGS = -I../../include -DNDEBUG
LDFLAGS = -L../../lib
LDLIBS = -lloki
BIN = main$(BIN_SUFFIX)
SRC = main.cpp
OBJ = $(SRC:.cpp=.o)
.PHONY: build clean
build: $(BIN)
.PHONY: all clean
all: $(BIN)
clean:
rm -f $(BIN) $(BIN).exe $(BIN).o
$(RM) $(BIN)
$(RM) $(OBJ)
$(BIN): $(OBJ)
$(CXX) $(LDFLAGS) -o $@ $^ $(LDLIBS)

View file

@ -1,21 +1,22 @@
BIN = main
BIN1 = main$(BIN_SUFFIX)
SRC1 = main.cpp
OBJ1 = $(SRC1:.cpp=.o)
LIB1 = libfoo.a
CXXFLAGS = -Wall -Wold-style-cast -Wundef -Wsign-compare -Wconversion -Wpointer-arith -pedantic -O2 -DLOKI_FUNCTOR_IS_NOT_A_SMALLOBJECT
CPPFLAGS = -I../../include -DNDEBUG
LDFLAGS = -L../../lib
LDLIBS = -lloki
SRC2 = foo.cpp
OBJ2 = $(SRC2:.cpp=.o)
override CPPFLAGS += -DLOKI_FUNCTOR_IS_NOT_A_SMALLOBJECT
.PHONY: build clean
build: $(BIN)
.PHONY: all clean
all: $(BIN1)
$(BIN): $(LIB1)
$(CXX) $(CXXFLAGS) -L. $(LDFLAGS) $(CPPFLAGS) -o $(BIN) main.cpp $(LDLIBS) -lfoo
$(BIN1): $(OBJ1) $(LIB1)
$(CXX) $(CXXFLAGS) -L. $(LDFLAGS) $(CPPFLAGS) -o $@ $(OBJ1) $(LDLIBS) -lfoo
$(LIB1): foo.o
ar rs $(LIB1) foo.o
$(LIB1): $(OBJ2)
$(AR) $(ARFLAGS) $@ $^
%.a : %.cpp
$(CXX) -c $(CXXFLAGS) -fPIC $(CPPFLAGS) -o $@ $<
clean:
rm -f $(BIN) $(LIB1)
$(RM) $(BIN1)
$(RM) $(OBJ1)
$(RM) $(LIB1)
$(RM) $(OBJ2)

View file

@ -1,10 +1,12 @@
BIN = Test
CXXFLAGS = -Wall -Wold-style-cast -Wundef -Wsign-compare -Wconversion -Wpointer-arith -pedantic -O2
CPPFLAGS = -I../../include -DNDEBUG
LDFLAGS = -L../../lib
LDLIBS = -lloki
BIN = Test$(BIN_SUFFIX)
SRC = Test.cpp
OBJ = $(SRC:.cpp=.o)
.PHONY: build clean
build: $(BIN)
.PHONY: all clean
all: $(BIN)
clean:
rm -f $(BIN) $(BIN).exe $(BIN).o
$(RM) $(BIN)
$(RM) $(OBJ)
$(BIN): $(OBJ)
$(CXX) $(LDFLAGS) -o $@ $^ $(LDLIBS)

View file

@ -1,10 +1,13 @@
BIN = main
CXXFLAGS = -Wall -Wold-style-cast -Wundef -Wsign-compare -Wconversion -Wpointer-arith -pedantic -fexpensive-optimizations -O3
CPPFLAGS = -I../../include -DNDEBUG
LDFLAGS = -L../../lib
LDLIBS = -lloki
BIN = main$(BIN_SUFFIX)
SRC = main.cpp
OBJ = $(SRC:.cpp=.o)
override CXXFLAGS = $(CXXWARNFLAGS) -g -fexpensive-optimizations -O3
.PHONY: build clean
build: $(BIN)
.PHONY: all clean
all: $(BIN)
clean:
rm -f $(BIN) $(BIN).exe $(BIN).o
$(RM) $(BIN)
$(RM) $(OBJ)
$(BIN): $(OBJ)
$(CXX) $(LDFLAGS) -o $@ $^ $(LDLIBS)

View file

@ -1,10 +1,12 @@
BIN = main
CXXFLAGS = -Wall -Wold-style-cast -Wundef -Wsign-compare -Wconversion -Wpointer-arith -pedantic -O2
CPPFLAGS = -I../../include -DNDEBUG
LDFLAGS = -L../../lib
LDLIBS = -lloki
BIN = main$(BIN_SUFFIX)
SRC = main.cpp
OBJ = $(SRC:.cpp=.o)
.PHONY: build clean
build: $(BIN)
.PHONY: all clean
all: $(BIN)
clean:
rm -f $(BIN) $(BIN).exe $(BIN).o
$(RM) $(BIN)
$(RM) $(OBJ)
$(BIN): $(OBJ)
$(CXX) $(LDFLAGS) -o $@ $^ $(LDLIBS)

View file

@ -1,11 +1,20 @@
BIN2 = Dependencies
BIN3 = Phoenix
CXXFLAGS = -Wall -Wold-style-cast -Wundef -Wsign-compare -Wconversion -Wpointer-arith -pedantic -O2
CPPFLAGS = -I../../include -DNDEBUG
LDFLAGS = -L../../lib
LDLIBS = -lloki
BIN1 = Dependencies$(BIN_SUFFIX)
SRC1 = Dependencies.cpp
OBJ1 = $(SRC1:.cpp=.o)
BIN2 = Phoenix$(BIN_SUFFIX)
SRC2 = Phoenix.cpp
OBJ2 = $(SRC2:.cpp=.o)
.PHONY: build clean
build: $(BIN2) $(BIN3)
.PHONY: all clean
all: $(BIN1) $(BIN2)
clean:
rm -f $(BIN2) $(BIN3) $(BIN2).exe $(BIN2).o $(BIN3).exe $(BIN3).o
$(RM) $(BIN1)
$(RM) $(OBJ1)
$(RM) $(BIN2)
$(RM) $(OBJ2)
$(BIN1): $(OBJ1)
$(CXX) $(LDFLAGS) -o $@ $^ $(LDLIBS)
$(BIN2): $(OBJ2)
$(CXX) $(LDFLAGS) -o $@ $^ $(LDLIBS)

View file

@ -1,34 +1,43 @@
_OS = $(shell uname -s)
ifeq ($(_OS), Darwin)
SHARED_LIB_FILENAME = dylib
ifeq ($(OS),Darwin)
LIB1 = libfoo.dylib
LIB2 = libsingletondll.dylib
SHARED_LIB_FLAG = -dynamiclib
else
SHARED_LIB_FILENAME = so
ifeq ($(OS),Linux)
LIB1 = libfoo.so
LIB2 = libsingletondll.so
SHARED_LIB_FLAG = --shared
else
LIB1 = foo.dll
LIB2 = singletondll.dll
SHARED_LIB_FLAG = --shared
endif
endif
BIN = client
LIB1 = libfoo.$(SHARED_LIB_FILENAME)
LIB2 = libsingletondll.$(SHARED_LIB_FILENAME)
#mingw names
#LIB1 = foo.dll
#LIB2 = singletondll.dll
CXXFLAGS = -Wall -Wold-style-cast -Wundef -Wsign-compare -Wconversion -Wpointer-arith -pedantic -O2
CPPFLAGS = -I../../include -DNDEBUG
LDFLAGS = -L../../lib
LDLIBS = -lloki
BIN1 = client$(BIN_SUFFIX)
SRC1 = client.cpp
OBJ1 = $(SRC1:.cpp=.o)
SRC2 = foo.cpp
OBJ2 = $(SRC2:.cpp=.o)
SRC3 = singletondll.cpp
OBJ3 = $(SRC3:.cpp=.o)
.PHONY: build clean
build: $(BIN)
.PHONY: all clean
all: $(BIN1)
$(BIN): $(LIB1) $(LIB2)
$(CXX) $(CXXFLAGS) -L. $(LDFLAGS) $(CPPFLAGS) -o $(BIN) client.cpp $(LDLIBS) -lfoo -lsingletondll
$(BIN1): $(OBJ1) $(LIB1) $(LIB2)
$(CXX) -L. $(LDFLAGS) -o $@ $(OBJ1) $(LDLIBS) -lfoo -lsingletondll
$(LIB1): foo.cpp
$(CXX) $(SHARED_LIB_FLAG) $(CXXFLAGS) $(CPPFLAGS) -o $(LIB1) foo.cpp
$(LIB1): $(OBJ2)
$(CXX) $(SHARED_LIB_FLAG) $(LDFLAGS) -o $@ $^ $(LDLIBS)
$(LIB2): singletondll.cpp
$(CXX) $(SHARED_LIB_FLAG) $(CXXFLAGS) $(CPPFLAGS) -o $(LIB2) singletondll.cpp -L. -lfoo
$(LIB2): $(OBJ3)
$(CXX) $(SHARED_LIB_FLAG) $(LDFLAGS) -L. -o $@ $^ -lfoo $(LDLIBS)
clean:
rm -f $(BIN) client.o foo.o singleton.o $(LIB1) $(LIB2)
$(RM) $(BIN1)
$(RM) $(OBJ1)
$(RM) $(LIB1)
$(RM) $(OBJ2)
$(RM) $(LIB2)
$(RM) $(OBJ3)

View file

@ -1,11 +1,21 @@
BIN1 = SmallObjBench
BIN2 = SmallObjSingleton
CXXFLAGS = -Wall -Wold-style-cast -Wundef -pedantic -fexpensive-optimizations -O3
CPPFLAGS = -I../../include -DNDEBUG
LDFLAGS = -L../../lib
LDLIBS = -lloki
BIN1 = SmallObjBench$(BIN_SUFFIX)
SRC1 = SmallObjBench.cpp
OBJ1 = $(SRC1:.cpp=.o)
BIN2 = SmallObjSingleton$(BIN_SUFFIX)
SRC2 = SmallObjSingleton.cpp
OBJ2 = $(SRC2:.cpp=.o)
override CXXFLAGS = $(CXXWARNFLAGS) -g -fexpensive-optimizations -O3
.PHONY: build clean
build: $(BIN1) $(BIN2)
.PHONY: all clean
all: $(BIN1) $(BIN2)
clean:
rm -f $(BIN1) $(BIN2) $(BIN1).exe $(BIN1).o $(BIN2).exe $(BIN2).o
$(RM) $(BIN1)
$(RM) $(OBJ1)
$(RM) $(BIN2)
$(RM) $(OBJ2)
$(BIN1): $(OBJ1)
$(CXX) $(LDFLAGS) -o $@ $^ $(LDLIBS)
$(BIN2): $(OBJ2)
$(CXX) $(LDFLAGS) -o $@ $^ $(LDLIBS)

View file

@ -1,51 +1,12 @@
BIN = main$(BIN_SUFFIX)
SRC = main.cpp strong.cpp
OBJ = $(SRC:.cpp=.o)
CXX = g++
CXXFLAGS = -Wall -Wold-style-cast -Wundef -Wsign-compare -Wconversion -Wpointer-arith -pedantic -O2 -I../../include -DNDEBUG
LINK = g++
LFLAGS = -L../../lib
LIBS = -lloki
DEL_FILE = rm -f
.PHONY: all clean
all: $(BIN)
clean:
$(RM) $(BIN)
$(RM) $(OBJ)
SOURCES = \
main.cpp \
strong.cpp
OBJECTS = \
main.o \
strong.o
TARGET = main.exe
####### Implicit rules
.SUFFIXES: .cpp
.cpp.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
####### Build rules
first: all
all: $(TARGET)
$(TARGET): $(OBJECTS)
$(LINK) $(LFLAGS) -o "$(TARGET)" $(OBJECTS) $(LIBS)
clean: compiler_clean
-$(DEL_FILE) main.o strong.o
-$(DEL_FILE) "$(TARGET)"
compiler_clean:
####### Compile
main.o: main.cpp
$(CXX) -c $(CXXFLAGS) -o main.o main.cpp
strong.o: strong.cpp
$(CXX) -c $(CXXFLAGS) -o strong.o strong.cpp
FORCE:
$(BIN): $(OBJ)
$(CXX) $(LDFLAGS) -o $@ $^ $(LDLIBS)

View file

@ -14,7 +14,7 @@
// ----------------------------------------------------------------------------
#include <Loki/StrongPtr.h>
#include <loki/StrongPtr.h>
#include <iostream>
#include <cassert>
@ -935,6 +935,10 @@ void DoStrongForwardReferenceTest( void )
// ----------------------------------------------------------------------------
// $Log$
// Revision 1.4 2006/04/18 07:29:41 lfittl
// - Various makefile improvements (better mingw support, easier to add new sources)
// - Include loki/StrongPtr.hpp, not Loki/StrongPtr.hpp (test/SmartPtr)
//
// Revision 1.3 2006/04/07 16:27:11 vizowl
// adding an XCode build project
//

View file

@ -1,10 +1,12 @@
BIN = main
CXXFLAGS = -Wall -Wold-style-cast -Wundef -pedantic -O2
CPPFLAGS = -I../../include -DNDEBUG
LDFLAGS = -L../../lib
LDLIBS = -lloki
BIN = main$(BIN_SUFFIX)
SRC = main.cpp
OBJ = $(SRC:.cpp=.o)
.PHONY: build clean
build: $(BIN)
.PHONY: all clean
all: $(BIN)
clean:
rm -f $(BIN) $(BIN).exe $(BIN).o
$(RM) $(BIN)
$(RM) $(OBJ)
$(BIN): $(OBJ)
$(CXX) $(LDFLAGS) -o $@ $^ $(LDLIBS)

View file

@ -1,8 +1,14 @@
BIN = main
CXXFLAGS = -Wall -Wold-style-cast -Wundef -Wsign-compare -Wconversion -Wpointer-arith -pedantic -O2
CPPFLAGS = -I../../include -DNDEBUG
BIN = main$(BIN_SUFFIX)
SRC = main.cpp
OBJ = $(SRC:.cpp=.o)
override LDFLAGS =
override LDLIBS =
.PHONY: build clean
build: $(BIN)
.PHONY: all clean
all: $(BIN)
clean:
rm -f $(BIN) $(BIN).exe $(BIN).o
$(RM) $(BIN)
$(RM) $(OBJ)
$(BIN): $(OBJ)
$(CXX) $(LDFLAGS) -o $@ $^ $(LDLIBS)