- 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,25 +1,37 @@
.PHONY: build-static build-shared check install install-includes install-shared clean-tmp clean export VERSION = 0.1.5
export OS ?= $(shell uname -s)
export CXXWARNFLAGS = -Wall -Wold-style-cast -Wundef -Wsign-compare -Wconversion -Wpointer-arith -pedantic
export CXXFLAGS = $(CXXWARNFLAGS) -g -O2
.PHONY: all build-static build-shared check clean distclean
all: build-static build-shared
build-static: build-static:
$(MAKE) -C src build-static $(MAKE) -C src build-static
build-shared: build-shared:
$(MAKE) -C src build-shared $(MAKE) -C src build-shared
check: build-static check: build-shared
$(MAKE) -C test $(MAKE) -C test
install: install-includes
$(MAKE) -C src install-static
install-includes:
$(MAKE) -C include install
install-shared: install-includes
$(MAKE) -C src install-shared
clean-tmp:
$(MAKE) -C src clean-tmp
clean: clean:
$(MAKE) -C src clean $(MAKE) -C src clean
$(MAKE) -C test clean $(MAKE) -C test clean
distclean: clean
$(MAKE) -C src distclean
ifneq ($(OS),Windows)
export prefix ?= /usr
.PHONY: install install-static
install:
$(MAKE) -C src install-static
$(MAKE) -C src install-shared
$(MAKE) -C include install
install-static:
$(MAKE) -C src install-static
$(MAKE) -C include install
endif

View file

@ -1,10 +1,9 @@
DESTDIR = /usr
.PHONY: install .PHONY: install
install: install:
mkdir -p $(DESTDIR)/include/loki mkdir -p $(prefix)/include/loki
mkdir -p $(DESTDIR)/include/loki/flex mkdir -p $(prefix)/include/loki/flex
mkdir -p $(DESTDIR)/include/loki/yasli mkdir -p $(prefix)/include/loki/yasli
install -m 644 loki/*.h $(DESTDIR)/include/loki install -m 644 loki/*.h $(prefix)/include/loki
install -m 644 loki/flex/*.h $(DESTDIR)/include/loki/flex install -m 644 loki/flex/*.h $(prefix)/include/loki/flex
install -m 644 loki/yasli/*.h $(DESTDIR)/include/loki/yasli install -m 644 loki/yasli/*.h $(prefix)/include/loki/yasli

View file

@ -6,5 +6,5 @@ if defined LOKI_TMP (
set LOKI_TMP= set LOKI_TMP=
@ECHO ON @ECHO ON
mingw32-make check mingw32-make check OS=Windows

View file

@ -2,54 +2,74 @@ SRC = $(wildcard *.cpp)
STATIC_OBJ = $(SRC:.cpp=.o) STATIC_OBJ = $(SRC:.cpp=.o)
SHARED_OBJ = $(SRC:.cpp=.lo) SHARED_OBJ = $(SRC:.cpp=.lo)
VERSION = 0.1.4
DESTDIR = /usr
CXXFLAGS = -Wall -Wold-style-cast -Wundef -Wsign-compare -Wconversion -Wpointer-arith -pedantic -O2
CPPFLAGS = -I../include -DNDEBUG CPPFLAGS = -I../include -DNDEBUG
STATIC_LIB = ../lib/libloki.a STATIC_LIB = libloki.a
ifeq ($(shell uname -s), Darwin) ifeq ($(OS), Darwin)
SO_EXT = dylib SHARED_LIB_BASE = libloki.dylib
INSTALL_FLAGS = SHARED_LIB_VERSIONED = libloki.$(VERSION).dylib
INSTALL_TARGET = libloki.$(VERSION).$(SO_EXT) LDFLAGS = -dynamiclib -single_module -install_name $(SHARED_LIB_VERSIONED) -fPIC
LDFLAGS = -dynamiclib -single_module -install_name $(INSTALL_TARGET) LDLIBS = -lpthread
RESULT_DIR = ../lib/
else else
SO_EXT = so ifeq ($(OS), Linux)
INSTALL_FLAGS = -s SHARED_LIB_BASE = libloki.so
INSTALL_TARGET = libloki.$(SO_EXT).$(VERSION) SHARED_LIB_VERSIONED = libloki.so.$(VERSION)
LDFLAGS = --shared -Wl,-soname=$(INSTALL_TARGET) LDFLAGS = --shared -Wl,-soname=$(SHARED_LIB_VERSIONED) -fPIC
LDLIBS = -lpthread
RESULT_DIR = ../lib/
else
SHARED_LIB_BASE = libloki.dll
LDFLAGS = --shared
LDLIBS =
RESULT_DIR = ..\lib\\
endif
endif endif
SHARED_LIB = ../lib/$(INSTALL_TARGET) .PHONY: all build-static build-shared clean distclean
all: build-static build-shared
build-static: $(RESULT_DIR)$(STATIC_LIB)
build-shared: $(RESULT_DIR)$(SHARED_LIB_BASE)
$(STATIC_LIB): $(STATIC_OBJ) clean:
$(AR) $(ARFLAGS) $@ $^ $(RM) $(STATIC_OBJ)
ifneq ($(OS), Windows)
$(RM) $(SHARED_OBJ)
endif
$(SHARED_LIB): $(SHARED_OBJ) distclean: clean
$(CXX) $(LDFLAGS) -o $@ $^ $(RM) $(RESULT_DIR)$(STATIC_LIB)
$(RM) $(RESULT_DIR)$(SHARED_LIB_BASE)
ifneq ($(OS),Windows)
$(RM) $(RESULT_DIR)$(SHARED_LIB_VERSIONED)
INSTALL = install
INSTALL_DATA = $(INSTALL) -m 644
.PHONY: install install-static install-shared
install: install-static install-shared
install-static: $(RESULT_DIR)$(STATIC_LIB)
mkdir -p $(prefix)/lib
$(INSTALL_DATA) $(RESULT_DIR)$(STATIC_LIB) $(prefix)/lib
install-shared: $(RESULT_DIR)$(SHARED_LIB_BASE)
mkdir -p $(prefix)/lib
$(INSTALL_DATA) $(RESULT_DIR)$(SHARED_LIB_BASE) $(prefix)/lib
$(INSTALL_DATA) $(RESULT_DIR)$(SHARED_LIB_VERSIONED) $(prefix)/lib
$(RESULT_DIR)$(SHARED_LIB_BASE): $(RESULT_DIR)$(SHARED_LIB_VERSIONED)
ln -sf $^ $@
%.lo : %.cpp %.lo : %.cpp
$(CXX) -c $(CXXFLAGS) -fPIC $(CPPFLAGS) -o $@ $< $(CXX) -c $(CXXFLAGS) -fPIC $(CPPFLAGS) -o $@ $<
.PHONY: build-static build-shared install-static install-shared clean-tmp clean $(RESULT_DIR)$(SHARED_LIB_VERSIONED): $(SHARED_OBJ)
build-static: $(STATIC_LIB) else
build-shared: $(SHARED_LIB) $(RESULT_DIR)$(SHARED_LIB_BASE): $(STATIC_OBJ)
endif
$(CXX) $(LDFLAGS) -o $@ $^ $(LDLIBS)
install-static: $(STATIC_LIB) $(RESULT_DIR)$(STATIC_LIB): $(STATIC_OBJ)
mkdir -p $(DESTDIR)/lib $(AR) $(ARFLAGS) $@ $^
install -m 644 $< $(DESTDIR)/lib
install-shared: $(SHARED_LIB)
mkdir -p $(DESTDIR)/lib
install -m 644 $(INSTALL_FLAGS) $< $(DESTDIR)/lib
cd $(DESTDIR)/lib/ && $(RM) libloki.$(SO_EXT) && ln -s $(INSTALL_TARGET) libloki.$(SO_EXT)
clean-tmp:
$(RM) $(STATIC_OBJ)
$(RM) $(SHARED_OBJ)
clean: clean-tmp
$(RM) $(STATIC_LIB)
$(RM) $(SHARED_LIB)

View file

@ -1,10 +1,12 @@
BIN = DeletableSingleton BIN = DeletableSingleton$(BIN_SUFFIX)
CXXFLAGS = -Wall -Wold-style-cast -Wundef -Wsign-compare -Wconversion -Wpointer-arith -pedantic -O2 SRC = DeletableSingleton.cpp
CPPFLAGS = -I../../include -DNDEBUG OBJ = $(SRC:.cpp=.o)
LDFLAGS = -L../../lib
LDLIBS = -lloki
.PHONY: build clean .PHONY: all clean
build: $(BIN) all: $(BIN)
clean: 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 BIN = Factory$(BIN_SUFFIX)
CXXFLAGS = -Wall -Wold-style-cast -Wundef -Wsign-compare -Wconversion -Wpointer-arith -pedantic -O2 SRC = Factory.cpp
CPPFLAGS = -I../../include -DNDEBUG OBJ = $(SRC:.cpp=.o)
LDFLAGS = -L../../lib
LDLIBS = -lloki
.PHONY: build clean .PHONY: all clean
build: $(BIN) all: $(BIN)
clean: 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 BIN = FunctionTest$(BIN_SUFFIX)
CXXFLAGS = -Wall -Wold-style-cast -Wundef -Wsign-compare -Wconversion -Wpointer-arith -pedantic -O2 SRC = FunctionTest.cpp
CPPFLAGS = -I../../include -DNDEBUG OBJ = $(SRC:.cpp=.o)
LDFLAGS = -L../../lib override LDLIBS += -lboost_test_exec_monitor
LDLIBS = -lloki -lboost_test_exec_monitor
.PHONY: build clean .PHONY: all clean
build: $(BIN) all: $(BIN)
clean: 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 BIN = main$(BIN_SUFFIX)
CXXFLAGS = -Wall -Wold-style-cast -Wundef -Wsign-compare -Wconversion -Wpointer-arith -pedantic -O2 SRC = main.cpp
CPPFLAGS = -I../../include -DNDEBUG OBJ = $(SRC:.cpp=.o)
LDFLAGS = -L../../lib
LDLIBS = -lloki
.PHONY: build clean .PHONY: all clean
build: $(BIN) all: $(BIN)
clean: 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 BIN1 = main$(BIN_SUFFIX)
BIN2 = main2 SRC1 = main.cpp
CXXFLAGS = -Wall -Wold-style-cast -Wundef -Wsign-compare -Wconversion -Wpointer-arith -pedantic -fexpensive-optimizations -O3 OBJ1 = $(SRC1:.cpp=.o)
CPPFLAGS = -I../../include -DNDEBUG BIN2 = main2$(BIN_SUFFIX)
LDFLAGS = -L../../lib SRC2 = main2.cpp
LDLIBS = -lloki OBJ2 = $(SRC2:.cpp=.o)
override CXXFLAGS = $(CXXWARNFLAGS) -g -fexpensive-optimizations -O3
.PHONY: build clean .PHONY: all clean
build: $(BIN1) $(BIN2) all: $(BIN1) $(BIN2)
clean: 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 = \ export CPPFLAGS = -I../../include -DNDEBUG
DeletableSingleton \ export LDFLAGS = -L../../lib
Factory \ export LDLIBS = -lloki
Longevity \
OrderedStatic \
Pimpl \
Register \
RegressionTest \
SafeFormat \
ScopeGuard \
Singleton \
SmallObj \
SmartPtr \
Visitor \
flex_string \
SingletonDll
SUBTARGETS_CLEAN = $(foreach SUBTARGET,$(SUBTARGETS),$(SUBTARGET)-clean) ifeq ($(OS),Windows)
export BIN_SUFFIX = .exe
else
export BIN_SUFFIX =
endif
.PHONY: clean all $(SUBTARGETS) $(SUBTARGETS_CLEAN) 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) all: $(SUBTARGETS)
clean: $(SUBTARGETS_CLEAN) clean: $(SUBTARGETS_CLEAN)

View file

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

View file

@ -1,10 +1,12 @@
BIN = Test BIN = Test$(BIN_SUFFIX)
CXXFLAGS = -Wall -Wold-style-cast -Wundef -Wsign-compare -Wconversion -Wpointer-arith -pedantic -O2 SRC = Test.cpp
CPPFLAGS = -I../../include -DNDEBUG OBJ = $(SRC:.cpp=.o)
LDFLAGS = -L../../lib
LDLIBS = -lloki
.PHONY: build clean .PHONY: all clean
build: $(BIN) all: $(BIN)
clean: 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 BIN = main$(BIN_SUFFIX)
CXXFLAGS = -Wall -Wold-style-cast -Wundef -Wsign-compare -Wconversion -Wpointer-arith -pedantic -fexpensive-optimizations -O3 SRC = main.cpp
CPPFLAGS = -I../../include -DNDEBUG OBJ = $(SRC:.cpp=.o)
LDFLAGS = -L../../lib override CXXFLAGS = $(CXXWARNFLAGS) -g -fexpensive-optimizations -O3
LDLIBS = -lloki
.PHONY: build clean .PHONY: all clean
build: $(BIN) all: $(BIN)
clean: 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 BIN = main$(BIN_SUFFIX)
CXXFLAGS = -Wall -Wold-style-cast -Wundef -Wsign-compare -Wconversion -Wpointer-arith -pedantic -O2 SRC = main.cpp
CPPFLAGS = -I../../include -DNDEBUG OBJ = $(SRC:.cpp=.o)
LDFLAGS = -L../../lib
LDLIBS = -lloki
.PHONY: build clean .PHONY: all clean
build: $(BIN) all: $(BIN)
clean: 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 BIN1 = Dependencies$(BIN_SUFFIX)
BIN3 = Phoenix SRC1 = Dependencies.cpp
CXXFLAGS = -Wall -Wold-style-cast -Wundef -Wsign-compare -Wconversion -Wpointer-arith -pedantic -O2 OBJ1 = $(SRC1:.cpp=.o)
CPPFLAGS = -I../../include -DNDEBUG BIN2 = Phoenix$(BIN_SUFFIX)
LDFLAGS = -L../../lib SRC2 = Phoenix.cpp
LDLIBS = -lloki OBJ2 = $(SRC2:.cpp=.o)
.PHONY: build clean .PHONY: all clean
build: $(BIN2) $(BIN3) all: $(BIN1) $(BIN2)
clean: 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)
ifeq ($(_OS), Darwin) LIB1 = libfoo.dylib
SHARED_LIB_FILENAME = dylib LIB2 = libsingletondll.dylib
SHARED_LIB_FLAG = -dynamiclib SHARED_LIB_FLAG = -dynamiclib
else 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 SHARED_LIB_FLAG = --shared
endif endif
endif
BIN = client BIN1 = client$(BIN_SUFFIX)
LIB1 = libfoo.$(SHARED_LIB_FILENAME) SRC1 = client.cpp
LIB2 = libsingletondll.$(SHARED_LIB_FILENAME) OBJ1 = $(SRC1:.cpp=.o)
#mingw names SRC2 = foo.cpp
#LIB1 = foo.dll OBJ2 = $(SRC2:.cpp=.o)
#LIB2 = singletondll.dll SRC3 = singletondll.cpp
CXXFLAGS = -Wall -Wold-style-cast -Wundef -Wsign-compare -Wconversion -Wpointer-arith -pedantic -O2 OBJ3 = $(SRC3:.cpp=.o)
CPPFLAGS = -I../../include -DNDEBUG
LDFLAGS = -L../../lib
LDLIBS = -lloki
.PHONY: build clean .PHONY: all clean
build: $(BIN) all: $(BIN1)
$(BIN): $(LIB1) $(LIB2) $(BIN1): $(OBJ1) $(LIB1) $(LIB2)
$(CXX) $(CXXFLAGS) -L. $(LDFLAGS) $(CPPFLAGS) -o $(BIN) client.cpp $(LDLIBS) -lfoo -lsingletondll $(CXX) -L. $(LDFLAGS) -o $@ $(OBJ1) $(LDLIBS) -lfoo -lsingletondll
$(LIB1): foo.cpp $(LIB1): $(OBJ2)
$(CXX) $(SHARED_LIB_FLAG) $(CXXFLAGS) $(CPPFLAGS) -o $(LIB1) foo.cpp $(CXX) $(SHARED_LIB_FLAG) $(LDFLAGS) -o $@ $^ $(LDLIBS)
$(LIB2): singletondll.cpp $(LIB2): $(OBJ3)
$(CXX) $(SHARED_LIB_FLAG) $(CXXFLAGS) $(CPPFLAGS) -o $(LIB2) singletondll.cpp -L. -lfoo $(CXX) $(SHARED_LIB_FLAG) $(LDFLAGS) -L. -o $@ $^ -lfoo $(LDLIBS)
clean: 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 BIN1 = SmallObjBench$(BIN_SUFFIX)
BIN2 = SmallObjSingleton SRC1 = SmallObjBench.cpp
CXXFLAGS = -Wall -Wold-style-cast -Wundef -pedantic -fexpensive-optimizations -O3 OBJ1 = $(SRC1:.cpp=.o)
CPPFLAGS = -I../../include -DNDEBUG BIN2 = SmallObjSingleton$(BIN_SUFFIX)
LDFLAGS = -L../../lib SRC2 = SmallObjSingleton.cpp
LDLIBS = -lloki OBJ2 = $(SRC2:.cpp=.o)
override CXXFLAGS = $(CXXWARNFLAGS) -g -fexpensive-optimizations -O3
.PHONY: build clean .PHONY: all clean
build: $(BIN1) $(BIN2) all: $(BIN1) $(BIN2)
clean: 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++ .PHONY: all clean
CXXFLAGS = -Wall -Wold-style-cast -Wundef -Wsign-compare -Wconversion -Wpointer-arith -pedantic -O2 -I../../include -DNDEBUG all: $(BIN)
LINK = g++ clean:
LFLAGS = -L../../lib $(RM) $(BIN)
LIBS = -lloki $(RM) $(OBJ)
DEL_FILE = rm -f
SOURCES = \ $(BIN): $(OBJ)
main.cpp \ $(CXX) $(LDFLAGS) -o $@ $^ $(LDLIBS)
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:

View file

@ -14,7 +14,7 @@
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
#include <Loki/StrongPtr.h> #include <loki/StrongPtr.h>
#include <iostream> #include <iostream>
#include <cassert> #include <cassert>
@ -935,6 +935,10 @@ void DoStrongForwardReferenceTest( void )
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// $Log$ // $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 // Revision 1.3 2006/04/07 16:27:11 vizowl
// adding an XCode build project // adding an XCode build project
// //

View file

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