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

View File

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

View File

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

View File

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

View File

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