Linking mailer and compose with a common library (libMailer)

This commit is contained in:
Pierre Pronchery 2011-11-20 04:41:00 +00:00
parent e3b0c864e1
commit 16e68c7cdd
4 changed files with 73 additions and 39 deletions

View File

@ -62,14 +62,14 @@ dist:
$(PACKAGE)-$(VERSION)/po/POTFILES \
$(PACKAGE)-$(VERSION)/po/fr.po \
$(PACKAGE)-$(VERSION)/po/project.conf \
$(PACKAGE)-$(VERSION)/src/compose.c \
$(PACKAGE)-$(VERSION)/src/compose-main.c \
$(PACKAGE)-$(VERSION)/src/account.c \
$(PACKAGE)-$(VERSION)/src/callbacks.c \
$(PACKAGE)-$(VERSION)/src/compose.c \
$(PACKAGE)-$(VERSION)/src/folder.c \
$(PACKAGE)-$(VERSION)/src/mailer.c \
$(PACKAGE)-$(VERSION)/src/main.c \
$(PACKAGE)-$(VERSION)/src/message.c \
$(PACKAGE)-$(VERSION)/src/compose-main.c \
$(PACKAGE)-$(VERSION)/src/main.c \
$(PACKAGE)-$(VERSION)/src/Makefile \
$(PACKAGE)-$(VERSION)/src/account.h \
$(PACKAGE)-$(VERSION)/src/callbacks.h \

View File

@ -8,3 +8,4 @@ Description: DeforaOS Desktop Mailer plug-ins
Version: VERSION
Requires: libDesktop
Cflags: -I${includedir}
Libs: -Wl,-R${libdir} -L${libdir} -lMailer

View File

@ -1,15 +1,18 @@
SUBDIRS = account plugins
TARGETS = compose mailer
TARGETS = libMailer.a libMailer.so.0.0 libMailer.so.0 libMailer.so compose mailer
PREFIX = /usr/local
DESTDIR =
BINDIR = $(PREFIX)/bin
LIBDIR = $(PREFIX)/lib
CC ?= cc
CPPFLAGSF= -I ../include
CPPFLAGS?=
CFLAGSF = -W `pkg-config --cflags libSystem libDesktop`
CFLAGSF = -W `pkg-config --cflags libDesktop`
CFLAGS = -Wall -g -O2 -pedantic
LDFLAGSF= `pkg-config --libs libSystem libDesktop`
LDFLAGS =
AR ?= ar
RANLIB ?= ranlib
CCSHARED?= $(CC) -shared
BINDIR = $(PREFIX)/bin
RM ?= rm -f
LN ?= ln -f
MKDIR ?= mkdir -p
@ -21,55 +24,73 @@ all: subdirs $(TARGETS)
subdirs:
@for i in $(SUBDIRS); do (cd $$i && $(MAKE)) || exit; done
compose_OBJS = compose.o compose-main.o
compose_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)
compose_LDFLAGS = $(LDFLAGSF) $(LDFLAGS)
libMailer_OBJS = account.o callbacks.o compose.o folder.o mailer.o message.o
libMailer_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS) -fPIC
libMailer_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) `pkg-config --libs libDesktop`
compose: $(compose_OBJS)
libMailer.a: $(libMailer_OBJS)
$(AR) -rc libMailer.a $(libMailer_OBJS)
$(RANLIB) libMailer.a
libMailer.so.0.0 libMailer.so.0 libMailer.so: $(libMailer_OBJS)
$(CCSHARED) -o libMailer.so.0.0 -Wl,-soname,libMailer.so.0 $(libMailer_OBJS) $(libMailer_LDFLAGS)
$(LN) -s -- libMailer.so.0.0 libMailer.so.0
$(LN) -s -- libMailer.so.0.0 libMailer.so
compose_OBJS = compose-main.o
compose_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)
compose_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) `pkg-config --libs gtk+-2.0` -L . -Wl,-rpath,$(PREFIX)/lib -lMailer
compose: $(compose_OBJS) libMailer.so
$(CC) -o compose $(compose_OBJS) $(compose_LDFLAGS)
mailer_OBJS = account.o callbacks.o folder.o mailer.o main.o message.o
mailer_OBJS = main.o
mailer_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)
mailer_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) compose.o
mailer_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) `pkg-config --libs gtk+-2.0` -L . -Wl,-rpath,$(PREFIX)/lib -lMailer
mailer: $(mailer_OBJS) compose.o
mailer: $(mailer_OBJS) libMailer.so
$(CC) -o mailer $(mailer_OBJS) $(mailer_LDFLAGS)
account.o: account.c mailer.h message.h account.h ../config.h
$(CC) -D PREFIX=\"$(PREFIX)\" $(libMailer_CFLAGS) -c account.c
callbacks.o: callbacks.c account.h callbacks.h compose.h mailer.h gtkassistant.c
$(CC) $(libMailer_CFLAGS) -c callbacks.c
compose.o: compose.c callbacks.h mailer.h compose.h ../config.h
$(CC) $(compose_CFLAGS) -c compose.c
$(CC) $(libMailer_CFLAGS) -c compose.c
folder.o: folder.c mailer.h folder.h
$(CC) $(libMailer_CFLAGS) -c folder.c
mailer.o: mailer.c account.h callbacks.h compose.h mailer.h ../config.h
$(CC) -D PREFIX=\"$(PREFIX)\" $(libMailer_CFLAGS) -c mailer.c
message.o: message.c
$(CC) $(libMailer_CFLAGS) -c message.c
compose-main.o: compose-main.c compose.h
$(CC) $(compose_CFLAGS) -c compose-main.c
account.o: account.c mailer.h message.h account.h ../config.h
$(CC) -D PREFIX=\"$(PREFIX)\" $(mailer_CFLAGS) -c account.c
callbacks.o: callbacks.c account.h callbacks.h compose.h mailer.h gtkassistant.c
$(CC) $(mailer_CFLAGS) -c callbacks.c
folder.o: folder.c mailer.h folder.h
$(CC) $(mailer_CFLAGS) -c folder.c
mailer.o: mailer.c account.h callbacks.h compose.h mailer.h ../config.h
$(CC) -D PREFIX=\"$(PREFIX)\" $(mailer_CFLAGS) -c mailer.c
main.o: main.c mailer.h ../config.h
$(CC) -D PREFIX=\"$(PREFIX)\" $(mailer_CFLAGS) -c main.c
message.o: message.c
$(CC) $(mailer_CFLAGS) -c message.c
clean:
@for i in $(SUBDIRS); do (cd $$i && $(MAKE) clean) || exit; done
$(RM) -- $(compose_OBJS) $(mailer_OBJS)
$(RM) -- $(libMailer_OBJS) $(compose_OBJS) $(mailer_OBJS)
distclean:
@for i in $(SUBDIRS); do (cd $$i && $(MAKE) distclean) || exit; done
$(RM) -- $(compose_OBJS) $(mailer_OBJS)
$(RM) -- $(libMailer_OBJS) $(compose_OBJS) $(mailer_OBJS)
$(RM) -- $(TARGETS)
install: $(TARGETS)
@for i in $(SUBDIRS); do (cd $$i && $(MAKE) install) || exit; done
$(MKDIR) $(DESTDIR)$(LIBDIR)
$(INSTALL) -m 0644 -- libMailer.a $(DESTDIR)$(LIBDIR)/libMailer.a
$(INSTALL) -m 0755 -- libMailer.so.0.0 $(DESTDIR)$(LIBDIR)/libMailer.so.0.0
$(LN) -s -- libMailer.so.0.0 $(DESTDIR)$(LIBDIR)/libMailer.so.0
$(LN) -s -- libMailer.so.0.0 $(DESTDIR)$(LIBDIR)/libMailer.so
$(MKDIR) $(DESTDIR)$(BINDIR)
$(INSTALL) -m 0755 -- compose $(DESTDIR)$(BINDIR)/compose
$(MKDIR) $(DESTDIR)$(BINDIR)
@ -77,6 +98,10 @@ install: $(TARGETS)
uninstall:
@for i in $(SUBDIRS); do (cd $$i && $(MAKE) uninstall) || exit; done
$(RM) -- $(DESTDIR)$(LIBDIR)/libMailer.a
$(RM) -- $(DESTDIR)$(LIBDIR)/libMailer.so.0.0
$(RM) -- $(DESTDIR)$(LIBDIR)/libMailer.so.0
$(RM) -- $(DESTDIR)$(LIBDIR)/libMailer.so
$(RM) -- $(DESTDIR)$(BINDIR)/compose
$(RM) -- $(DESTDIR)$(BINDIR)/mailer

View File

@ -1,23 +1,31 @@
subdirs=account,plugins
targets=compose,mailer
targets=libMailer,compose,mailer
cppflags_force=-I ../include
#cppflags=-D EMBEDDED
cflags_force=-W `pkg-config --cflags libSystem libDesktop`
cflags_force=-W `pkg-config --cflags libDesktop`
cflags=-Wall -g -O2 -pedantic
ldflags_force=`pkg-config --libs libSystem libDesktop`
ldflags=
dist=Makefile,account.h,callbacks.h,common.c,compose.h,folder.h,mailer.h,message.h,gtkassistant.c
[libMailer]
type=library
cflags=-fPIC
ldflags=`pkg-config --libs libDesktop`
sources=account.c,callbacks.c,compose.c,folder.c,mailer.c,message.c
install=$(LIBDIR)
[compose]
type=binary
sources=compose.c,compose-main.c
depends=libMailer.so
sources=compose-main.c
ldflags=`pkg-config --libs gtk+-2.0` -L . -Wl,-rpath,$(PREFIX)/lib -lMailer
install=$(BINDIR)
[mailer]
type=binary
sources=account.c,callbacks.c,folder.c,mailer.c,main.c,message.c
depends=compose.o
ldflags=compose.o
depends=libMailer.so
sources=main.c
ldflags=`pkg-config --libs gtk+-2.0` -L . -Wl,-rpath,$(PREFIX)/lib -lMailer
install=$(BINDIR)
[account.c]