Now building a common library (libPanel)

This commit is contained in:
Pierre Pronchery 2013-11-24 00:17:11 +01:00
parent ef32f3fc0e
commit f5943637b8
2 changed files with 49 additions and 14 deletions

View File

@ -1,14 +1,18 @@
SUBDIRS = applets
TARGETS = panel panelctl run
TARGETS = libPanel.a libPanel.so.0.0 libPanel.so.0 libPanel.so panel panelctl run
PREFIX = /usr/local
DESTDIR =
BINDIR = $(PREFIX)/bin
SBINDIR = $(PREFIX)/sbin
LIBDIR = $(PREFIX)/lib
CC = cc
CPPFLAGSF=
CPPFLAGS=
CFLAGSF = -W
CFLAGS = -Wall -g -O2 -pedantic
AR = ar
RANLIB = ranlib
CCSHARED= $(CC) -shared
BINDIR = $(PREFIX)/bin
SBINDIR = $(PREFIX)/sbin
RM = rm -f
LN = ln -f
MKDIR = mkdir -m 0755 -p
@ -20,11 +24,24 @@ all: subdirs $(TARGETS)
subdirs:
@for i in $(SUBDIRS); do (cd "$$i" && $(MAKE)) || exit; done
panel_OBJS = panel.o window.o main.o
panel_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) -D PREFIX=\"$(PREFIX)\" $(CFLAGSF) $(CFLAGS) `pkg-config --cflags libDesktop`
panel_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) `pkg-config --libs libDesktop` -lintl
libPanel_OBJS = panel.o window.o
libPanel_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) -D PREFIX=\"$(PREFIX)\" $(CFLAGSF) $(CFLAGS) `pkg-config --cflags libDesktop` -fPIC
libPanel_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) `pkg-config --libs libDesktop` -lintl
panel: $(panel_OBJS)
libPanel.a: $(libPanel_OBJS)
$(AR) -rc libPanel.a $(libPanel_OBJS)
$(RANLIB) libPanel.a
libPanel.so.0.0 libPanel.so.0 libPanel.so: $(libPanel_OBJS)
$(CCSHARED) -o libPanel.so.0.0 -Wl,-soname,libPanel.so.0 $(libPanel_OBJS) $(libPanel_LDFLAGS)
$(LN) -s -- libPanel.so.0.0 libPanel.so.0
$(LN) -s -- libPanel.so.0.0 libPanel.so
panel_OBJS = main.o
panel_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) -D PREFIX=\"$(PREFIX)\" $(CFLAGSF) $(CFLAGS) `pkg-config --cflags libDesktop`
panel_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) `pkg-config --libs libDesktop` -lintl -L. -Wl,-rpath,$(LIBDIR) -lPanel
panel: $(panel_OBJS) libPanel.a
$(CC) -o panel $(panel_OBJS) $(panel_LDFLAGS)
panelctl_OBJS = panelctl.o
@ -42,10 +59,10 @@ run: $(run_OBJS)
$(CC) -o run $(run_OBJS) $(run_LDFLAGS)
panel.o: panel.c panel.h window.h ../include/Panel.h helper.c ../config.h
$(CC) $(panel_CFLAGS) -c panel.c
$(CC) $(libPanel_CFLAGS) -c panel.c
window.o: window.c ../include/Panel.h panel.h window.h
$(CC) $(panel_CFLAGS) -c window.c
$(CC) $(libPanel_CFLAGS) -c window.c
main.o: main.c ../include/Panel.h panel.h ../config.h
$(CC) $(panel_CFLAGS) -c main.c
@ -58,15 +75,20 @@ run.o: run.c
clean:
@for i in $(SUBDIRS); do (cd "$$i" && $(MAKE) clean) || exit; done
$(RM) -- $(panel_OBJS) $(panelctl_OBJS) $(run_OBJS)
$(RM) -- $(libPanel_OBJS) $(panel_OBJS) $(panelctl_OBJS) $(run_OBJS)
distclean:
@for i in $(SUBDIRS); do (cd "$$i" && $(MAKE) distclean) || exit; done
$(RM) -- $(panel_OBJS) $(panelctl_OBJS) $(run_OBJS)
$(RM) -- $(libPanel_OBJS) $(panel_OBJS) $(panelctl_OBJS) $(run_OBJS)
$(RM) -- $(TARGETS)
install: $(TARGETS)
@for i in $(SUBDIRS); do (cd "$$i" && $(MAKE) install) || exit; done
$(MKDIR) $(DESTDIR)$(LIBDIR)
$(INSTALL) -m 0644 libPanel.a $(DESTDIR)$(LIBDIR)/libPanel.a
$(INSTALL) -m 0755 libPanel.so.0.0 $(DESTDIR)$(LIBDIR)/libPanel.so.0.0
$(LN) -s -- libPanel.so.0.0 $(DESTDIR)$(LIBDIR)/libPanel.so.0
$(LN) -s -- libPanel.so.0.0 $(DESTDIR)$(LIBDIR)/libPanel.so
$(MKDIR) $(DESTDIR)$(BINDIR)
$(INSTALL) -m 0755 panel $(DESTDIR)$(BINDIR)/panel
$(MKDIR) $(DESTDIR)$(BINDIR)
@ -76,6 +98,10 @@ install: $(TARGETS)
uninstall:
@for i in $(SUBDIRS); do (cd "$$i" && $(MAKE) uninstall) || exit; done
$(RM) -- $(DESTDIR)$(LIBDIR)/libPanel.a
$(RM) -- $(DESTDIR)$(LIBDIR)/libPanel.so.0.0
$(RM) -- $(DESTDIR)$(LIBDIR)/libPanel.so.0
$(RM) -- $(DESTDIR)$(LIBDIR)/libPanel.so
$(RM) -- $(DESTDIR)$(BINDIR)/panel
$(RM) -- $(DESTDIR)$(BINDIR)/panelctl
$(RM) -- $(DESTDIR)$(BINDIR)/run

View File

@ -1,16 +1,25 @@
subdirs=applets
targets=panel,panelctl,run
targets=libPanel,panel,panelctl,run
#cppflags=-D EMBEDDED
cflags_force=-W
cflags=-Wall -g -O2 -pedantic
dist=Makefile,helper.c,panel.h,window.h
[libPanel]
type=library
sources=panel.c,window.c
cppflags=-D PREFIX=\"$(PREFIX)\"
cflags=`pkg-config --cflags libDesktop` -fPIC
ldflags=`pkg-config --libs libDesktop` -lintl
install=$(LIBDIR)
[panel]
type=binary
sources=panel.c,window.c,main.c
depends=libPanel.a
sources=main.c
cppflags=-D PREFIX=\"$(PREFIX)\"
cflags=`pkg-config --cflags libDesktop`
ldflags=`pkg-config --libs libDesktop` -lintl
ldflags=`pkg-config --libs libDesktop` -lintl -L. -Wl,-rpath,$(LIBDIR) -lPanel
install=$(BINDIR)
[main.c]