- 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:
|
||||
$(MAKE) -C src build-static
|
||||
|
||||
build-shared:
|
||||
$(MAKE) -C src build-shared
|
||||
|
||||
check: build-static
|
||||
check: build-shared
|
||||
$(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:
|
||||
$(MAKE) -C src 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
|
||||
install:
|
||||
mkdir -p $(DESTDIR)/include/loki
|
||||
mkdir -p $(DESTDIR)/include/loki/flex
|
||||
mkdir -p $(DESTDIR)/include/loki/yasli
|
||||
mkdir -p $(prefix)/include/loki
|
||||
mkdir -p $(prefix)/include/loki/flex
|
||||
mkdir -p $(prefix)/include/loki/yasli
|
||||
|
||||
install -m 644 loki/*.h $(DESTDIR)/include/loki
|
||||
install -m 644 loki/flex/*.h $(DESTDIR)/include/loki/flex
|
||||
install -m 644 loki/yasli/*.h $(DESTDIR)/include/loki/yasli
|
||||
install -m 644 loki/*.h $(prefix)/include/loki
|
||||
install -m 644 loki/flex/*.h $(prefix)/include/loki/flex
|
||||
install -m 644 loki/yasli/*.h $(prefix)/include/loki/yasli
|
||||
|
|
|
@ -6,5 +6,5 @@ if defined LOKI_TMP (
|
|||
set LOKI_TMP=
|
||||
@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)
|
||||
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
|
||||
|
||||
STATIC_LIB = ../lib/libloki.a
|
||||
STATIC_LIB = libloki.a
|
||||
|
||||
ifeq ($(shell uname -s), Darwin)
|
||||
SO_EXT = dylib
|
||||
INSTALL_FLAGS =
|
||||
INSTALL_TARGET = libloki.$(VERSION).$(SO_EXT)
|
||||
LDFLAGS = -dynamiclib -single_module -install_name $(INSTALL_TARGET)
|
||||
ifeq ($(OS), Darwin)
|
||||
SHARED_LIB_BASE = libloki.dylib
|
||||
SHARED_LIB_VERSIONED = libloki.$(VERSION).dylib
|
||||
LDFLAGS = -dynamiclib -single_module -install_name $(SHARED_LIB_VERSIONED) -fPIC
|
||||
LDLIBS = -lpthread
|
||||
RESULT_DIR = ../lib/
|
||||
else
|
||||
SO_EXT = so
|
||||
INSTALL_FLAGS = -s
|
||||
INSTALL_TARGET = libloki.$(SO_EXT).$(VERSION)
|
||||
LDFLAGS = --shared -Wl,-soname=$(INSTALL_TARGET)
|
||||
ifeq ($(OS), Linux)
|
||||
SHARED_LIB_BASE = libloki.so
|
||||
SHARED_LIB_VERSIONED = libloki.so.$(VERSION)
|
||||
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
|
||||
|
||||
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)
|
||||
$(AR) $(ARFLAGS) $@ $^
|
||||
clean:
|
||||
$(RM) $(STATIC_OBJ)
|
||||
ifneq ($(OS), Windows)
|
||||
$(RM) $(SHARED_OBJ)
|
||||
endif
|
||||
|
||||
$(SHARED_LIB): $(SHARED_OBJ)
|
||||
$(CXX) $(LDFLAGS) -o $@ $^
|
||||
distclean: clean
|
||||
$(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
|
||||
$(CXX) -c $(CXXFLAGS) -fPIC $(CPPFLAGS) -o $@ $<
|
||||
|
||||
.PHONY: build-static build-shared install-static install-shared clean-tmp clean
|
||||
build-static: $(STATIC_LIB)
|
||||
build-shared: $(SHARED_LIB)
|
||||
$(RESULT_DIR)$(SHARED_LIB_VERSIONED): $(SHARED_OBJ)
|
||||
else
|
||||
$(RESULT_DIR)$(SHARED_LIB_BASE): $(STATIC_OBJ)
|
||||
endif
|
||||
$(CXX) $(LDFLAGS) -o $@ $^ $(LDLIBS)
|
||||
|
||||
install-static: $(STATIC_LIB)
|
||||
mkdir -p $(DESTDIR)/lib
|
||||
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)
|
||||
$(RESULT_DIR)$(STATIC_LIB): $(STATIC_OBJ)
|
||||
$(AR) $(ARFLAGS) $@ $^
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -1,23 +1,20 @@
|
|||
SUBTARGETS = \
|
||||
DeletableSingleton \
|
||||
Factory \
|
||||
Longevity \
|
||||
OrderedStatic \
|
||||
Pimpl \
|
||||
Register \
|
||||
RegressionTest \
|
||||
SafeFormat \
|
||||
ScopeGuard \
|
||||
Singleton \
|
||||
SmallObj \
|
||||
SmartPtr \
|
||||
Visitor \
|
||||
flex_string \
|
||||
SingletonDll
|
||||
export CPPFLAGS = -I../../include -DNDEBUG
|
||||
export LDFLAGS = -L../../lib
|
||||
export LDLIBS = -lloki
|
||||
|
||||
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)
|
||||
clean: $(SUBTARGETS_CLEAN)
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
||||
%.a : %.cpp
|
||||
$(CXX) -c $(CXXFLAGS) -fPIC $(CPPFLAGS) -o $@ $<
|
||||
$(LIB1): $(OBJ2)
|
||||
$(AR) $(ARFLAGS) $@ $^
|
||||
|
||||
clean:
|
||||
rm -f $(BIN) $(LIB1)
|
||||
$(RM) $(BIN1)
|
||||
$(RM) $(OBJ1)
|
||||
$(RM) $(LIB1)
|
||||
$(RM) $(OBJ2)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
//
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Add table
Reference in a new issue