Building and installing the libDatabase shared library

Moved the modules to $(LIBDIR)/Database/engine
This commit is contained in:
Pierre Pronchery 2012-10-29 21:01:30 +01:00
parent e933ec7618
commit 6e710609f7
5 changed files with 36 additions and 24 deletions

View File

@ -1,14 +1,16 @@
SUBDIRS = database SUBDIRS = database
TARGETS = database.o TARGETS = libDatabase.a libDatabase.so.0.0 libDatabase.so.0 libDatabase.so
PREFIX = /usr/local PREFIX = /usr/local
DESTDIR = DESTDIR =
BINDIR = $(PREFIX)/bin LIBDIR = $(PREFIX)/lib
SBINDIR = $(PREFIX)/sbin
CC ?= cc CC ?= cc
CPPFLAGSF?= CPPFLAGSF?=
CPPFLAGS?= CPPFLAGS?=
CFLAGSF = -W -fPIC CFLAGSF = -W -fPIC
CFLAGS = -Wall -g -O2 -pedantic CFLAGS = -Wall -g -O2 -pedantic
AR ?= ar
RANLIB ?= ranlib
CCSHARED?= $(CC) -shared
RM ?= rm -f RM ?= rm -f
LN ?= ln -f LN ?= ln -f
MKDIR ?= mkdir -p MKDIR ?= mkdir -p
@ -20,19 +22,29 @@ all: subdirs $(TARGETS)
subdirs: subdirs:
@for i in $(SUBDIRS); do (cd $$i && $(MAKE)) || exit; done @for i in $(SUBDIRS); do (cd $$i && $(MAKE)) || exit; done
database.o_OBJS = database.o libDatabase_OBJS = database.o
database.o_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS) libDatabase_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)
libDatabase_LDFLAGS = $(LDFLAGSF) $(LDFLAGS)
libDatabase.a: $(libDatabase_OBJS)
$(AR) -rc libDatabase.a $(libDatabase_OBJS)
$(RANLIB) libDatabase.a
libDatabase.so.0.0 libDatabase.so.0 libDatabase.so: $(libDatabase_OBJS)
$(CCSHARED) -o libDatabase.so.0.0 -Wl,-soname,libDatabase.so.0 $(libDatabase_OBJS) $(libDatabase_LDFLAGS)
$(LN) -s -- libDatabase.so.0.0 libDatabase.so.0
$(LN) -s -- libDatabase.so.0.0 libDatabase.so
database.o: database.c database/database.h database.o: database.c database/database.h
$(CC) $(database.o_CFLAGS) -c database.c $(CC) $(libDatabase_CFLAGS) -c database.c
clean: clean:
@for i in $(SUBDIRS); do (cd $$i && $(MAKE) clean) || exit; done @for i in $(SUBDIRS); do (cd $$i && $(MAKE) clean) || exit; done
$(RM) -- $(database.o_OBJS) $(RM) -- $(libDatabase_OBJS)
distclean: distclean:
@for i in $(SUBDIRS); do (cd $$i && $(MAKE) distclean) || exit; done @for i in $(SUBDIRS); do (cd $$i && $(MAKE) distclean) || exit; done
$(RM) -- $(database.o_OBJS) $(RM) -- $(libDatabase_OBJS)
$(RM) -- $(TARGETS) $(RM) -- $(TARGETS)
install: $(TARGETS) install: $(TARGETS)

View File

@ -43,7 +43,7 @@ Database * database_new(char const * engine, Config * config,
if((database = object_new(sizeof(*database))) == NULL) if((database = object_new(sizeof(*database))) == NULL)
return NULL; return NULL;
memset(database, 0, sizeof(*database)); memset(database, 0, sizeof(*database));
if((database->plugin = plugin_new(LIBDIR, PACKAGE, "database", if((database->plugin = plugin_new(LIBDIR, "Database", "engine",
engine)) == NULL engine)) == NULL
|| (database->dplugin = plugin_lookup(database->plugin, || (database->dplugin = plugin_lookup(database->plugin,
"database")) == NULL "database")) == NULL

View File

@ -65,16 +65,16 @@ distclean: clean
$(RM) -- $(TARGETS) $(RM) -- $(TARGETS)
install: $(TARGETS) install: $(TARGETS)
$(MKDIR) $(DESTDIR)$(LIBDIR)/Database/database $(MKDIR) $(DESTDIR)$(LIBDIR)/Database/engine
$(INSTALL) -m 0644 -- pgsql.so $(DESTDIR)$(LIBDIR)/Database/database/pgsql.so $(INSTALL) -m 0644 -- pgsql.so $(DESTDIR)$(LIBDIR)/Database/engine/pgsql.so
$(MKDIR) $(DESTDIR)$(LIBDIR)/Database/database $(MKDIR) $(DESTDIR)$(LIBDIR)/Database/engine
$(INSTALL) -m 0644 -- sqlite2.so $(DESTDIR)$(LIBDIR)/Database/database/sqlite2.so $(INSTALL) -m 0644 -- sqlite2.so $(DESTDIR)$(LIBDIR)/Database/engine/sqlite2.so
$(MKDIR) $(DESTDIR)$(LIBDIR)/Database/database $(MKDIR) $(DESTDIR)$(LIBDIR)/Database/engine
$(INSTALL) -m 0644 -- sqlite3.so $(DESTDIR)$(LIBDIR)/Database/database/sqlite3.so $(INSTALL) -m 0644 -- sqlite3.so $(DESTDIR)$(LIBDIR)/Database/engine/sqlite3.so
uninstall: uninstall:
$(RM) -- $(DESTDIR)$(LIBDIR)/Database/database/pgsql.so $(RM) -- $(DESTDIR)$(LIBDIR)/Database/engine/pgsql.so
$(RM) -- $(DESTDIR)$(LIBDIR)/Database/database/sqlite2.so $(RM) -- $(DESTDIR)$(LIBDIR)/Database/engine/sqlite2.so
$(RM) -- $(DESTDIR)$(LIBDIR)/Database/database/sqlite3.so $(RM) -- $(DESTDIR)$(LIBDIR)/Database/engine/sqlite3.so
.PHONY: all clean distclean install uninstall .PHONY: all clean distclean install uninstall

View File

@ -8,7 +8,7 @@ type=plugin
cppflags=-I `pg_config --includedir` cppflags=-I `pg_config --includedir`
ldflags=-L `pg_config --libdir` -Wl,-rpath,`pg_config --libdir` `pg_config --libs` -lpq ldflags=-L `pg_config --libdir` -Wl,-rpath,`pg_config --libdir` `pg_config --libs` -lpq
sources=pgsql.c sources=pgsql.c
install=$(LIBDIR)/Database/database install=$(LIBDIR)/Database/engine
[pgsql.c] [pgsql.c]
depends=database.h depends=database.h
@ -18,7 +18,7 @@ type=plugin
cflags=`pkg-config --cflags sqlite` cflags=`pkg-config --cflags sqlite`
ldflags=`pkg-config --libs sqlite` ldflags=`pkg-config --libs sqlite`
sources=sqlite2.c sources=sqlite2.c
install=$(LIBDIR)/Database/database install=$(LIBDIR)/Database/engine
[sqlite2.c] [sqlite2.c]
depends=database.h depends=database.h
@ -28,7 +28,7 @@ type=plugin
cflags=`pkg-config --cflags sqlite3` cflags=`pkg-config --cflags sqlite3`
ldflags=`pkg-config --libs sqlite3` ldflags=`pkg-config --libs sqlite3`
sources=sqlite3.c sources=sqlite3.c
install=$(LIBDIR)/Database/database install=$(LIBDIR)/Database/engine
[sqlite3.c] [sqlite3.c]
depends=database.h depends=database.h

View File

@ -1,11 +1,11 @@
subdirs=database subdirs=database
targets=database.o targets=libDatabase
cflags_force=-W -fPIC cflags_force=-W -fPIC
cflags=-Wall -g -O2 -pedantic cflags=-Wall -g -O2 -pedantic
dist=Makefile dist=Makefile
[database.o] [libDatabase]
type=object type=library
sources=database.c sources=database.c
[database.c] [database.c]