- 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:
parent
cdc57d88aa
commit
85a490c387
23 changed files with 340 additions and 280 deletions
40
Makefile
40
Makefile
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
96
src/Makefile
96
src/Makefile
|
@ -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)
|
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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:
|
|
||||||
|
|
|
@ -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
|
||||||
//
|
//
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
Loading…
Add table
Reference in a new issue