Added support for building with OBJDIR
This commit is contained in:
parent
b4d98e26f0
commit
f2325e6ecb
18
Makefile
18
Makefile
|
@ -3,7 +3,8 @@ VERSION = 0.0.1
|
|||
SUBDIRS = data doc include src tests
|
||||
RM = rm -f
|
||||
LN = ln -f
|
||||
TAR = tar -czvf
|
||||
TAR = tar
|
||||
MKDIR = mkdir -m 0755 -p
|
||||
|
||||
|
||||
all: subdirs
|
||||
|
@ -20,7 +21,7 @@ distclean:
|
|||
dist:
|
||||
$(RM) -r -- $(PACKAGE)-$(VERSION)
|
||||
$(LN) -s -- . $(PACKAGE)-$(VERSION)
|
||||
@$(TAR) $(PACKAGE)-$(VERSION).tar.gz -- \
|
||||
@$(TAR) -czvf $(PACKAGE)-$(VERSION).tar.gz -- \
|
||||
$(PACKAGE)-$(VERSION)/data/Makefile \
|
||||
$(PACKAGE)-$(VERSION)/data/cpp.pc.in \
|
||||
$(PACKAGE)-$(VERSION)/data/pkgconfig.sh \
|
||||
|
@ -60,10 +61,21 @@ dist:
|
|||
$(PACKAGE)-$(VERSION)/project.conf
|
||||
$(RM) -- $(PACKAGE)-$(VERSION)
|
||||
|
||||
distcheck: dist
|
||||
$(TAR) -xzvf $(PACKAGE)-$(VERSION).tar.gz
|
||||
$(MKDIR) -- $(PACKAGE)-$(VERSION)/objdir
|
||||
$(MKDIR) -- $(PACKAGE)-$(VERSION)/destdir
|
||||
(cd "$(PACKAGE)-$(VERSION)" && $(MAKE) OBJDIR="$$PWD/objdir/")
|
||||
(cd "$(PACKAGE)-$(VERSION)" && $(MAKE) OBJDIR="$$PWD/objdir/" DESTDIR="$$PWD/destdir" install)
|
||||
(cd "$(PACKAGE)-$(VERSION)" && $(MAKE) OBJDIR="$$PWD/objdir/" DESTDIR="$$PWD/destdir" uninstall)
|
||||
(cd "$(PACKAGE)-$(VERSION)" && $(MAKE) OBJDIR="$$PWD/objdir/" distclean)
|
||||
(cd "$(PACKAGE)-$(VERSION)" && $(MAKE) dist)
|
||||
$(RM) -r -- $(PACKAGE)-$(VERSION)
|
||||
|
||||
install:
|
||||
@for i in $(SUBDIRS); do (cd "$$i" && $(MAKE) install) || exit; done
|
||||
|
||||
uninstall:
|
||||
@for i in $(SUBDIRS); do (cd "$$i" && $(MAKE) uninstall) || exit; done
|
||||
|
||||
.PHONY: all subdirs clean distclean dist install uninstall
|
||||
.PHONY: all subdirs clean distclean dist distcheck install uninstall
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
TARGETS = cpp.pc
|
||||
TARGETS = $(OBJDIR)cpp.pc
|
||||
OBJDIR =
|
||||
PREFIX = /usr/local
|
||||
DESTDIR =
|
||||
RM = rm -f
|
||||
|
@ -9,8 +10,8 @@ INSTALL = install
|
|||
|
||||
all: $(TARGETS)
|
||||
|
||||
cpp.pc: cpp.pc.in ../config.sh
|
||||
./pkgconfig.sh -P "$(PREFIX)" -- "cpp.pc"
|
||||
$(OBJDIR)cpp.pc: cpp.pc.in ../config.sh
|
||||
./pkgconfig.sh -P "$(PREFIX)" -- "$(OBJDIR)cpp.pc"
|
||||
|
||||
clean:
|
||||
$(RM) -- $(cpp.pc_OBJS)
|
||||
|
@ -20,7 +21,7 @@ distclean: clean
|
|||
$(RM) -- $(TARGETS)
|
||||
|
||||
install: $(TARGETS)
|
||||
./pkgconfig.sh -P "$(DESTDIR)$(PREFIX)" -i -- "cpp.pc"
|
||||
./pkgconfig.sh -P "$(DESTDIR)$(PREFIX)" -i -- "$(OBJDIR)cpp.pc"
|
||||
|
||||
uninstall:
|
||||
./pkgconfig.sh -P "$(DESTDIR)$(PREFIX)" -u -- "cpp.pc"
|
||||
|
|
21
doc/Makefile
21
doc/Makefile
|
@ -1,5 +1,6 @@
|
|||
SUBDIRS = gtkdoc
|
||||
TARGETS = gtkdoc/CPP.types gtkdoc/tmpl.stamp gtkdoc/sgml.stamp gtkdoc/html.stamp
|
||||
TARGETS = $(OBJDIR)gtkdoc/CPP.types $(OBJDIR)gtkdoc/tmpl.stamp $(OBJDIR)gtkdoc/sgml.stamp $(OBJDIR)gtkdoc/html.stamp
|
||||
OBJDIR =
|
||||
PREFIX = /usr/local
|
||||
DESTDIR =
|
||||
RM = rm -f
|
||||
|
@ -13,17 +14,17 @@ all: subdirs $(TARGETS)
|
|||
subdirs:
|
||||
@for i in $(SUBDIRS); do (cd "$$i" && $(MAKE)) || exit; done
|
||||
|
||||
gtkdoc/CPP.types:
|
||||
./gtkdoc.sh -P "$(PREFIX)" -- "gtkdoc/CPP.types"
|
||||
$(OBJDIR)gtkdoc/CPP.types:
|
||||
./gtkdoc.sh -P "$(PREFIX)" -- "$(OBJDIR)gtkdoc/CPP.types"
|
||||
|
||||
gtkdoc/tmpl.stamp: gtkdoc/CPP.types gtkdoc/tmpl/cpp.sgml
|
||||
./gtkdoc.sh -P "$(PREFIX)" -- "gtkdoc/tmpl.stamp"
|
||||
$(OBJDIR)gtkdoc/tmpl.stamp: $(OBJDIR)gtkdoc/CPP.types gtkdoc/tmpl/cpp.sgml
|
||||
./gtkdoc.sh -P "$(PREFIX)" -- "$(OBJDIR)gtkdoc/tmpl.stamp"
|
||||
|
||||
gtkdoc/sgml.stamp: gtkdoc/tmpl.stamp
|
||||
./gtkdoc.sh -P "$(PREFIX)" -- "gtkdoc/sgml.stamp"
|
||||
$(OBJDIR)gtkdoc/sgml.stamp: $(OBJDIR)gtkdoc/tmpl.stamp
|
||||
./gtkdoc.sh -P "$(PREFIX)" -- "$(OBJDIR)gtkdoc/sgml.stamp"
|
||||
|
||||
gtkdoc/html.stamp: gtkdoc/CPP-docs.xml gtkdoc/sgml.stamp
|
||||
./gtkdoc.sh -P "$(PREFIX)" -- "gtkdoc/html.stamp"
|
||||
$(OBJDIR)gtkdoc/html.stamp: gtkdoc/CPP-docs.xml $(OBJDIR)gtkdoc/sgml.stamp
|
||||
./gtkdoc.sh -P "$(PREFIX)" -- "$(OBJDIR)gtkdoc/html.stamp"
|
||||
|
||||
clean:
|
||||
@for i in $(SUBDIRS); do (cd "$$i" && $(MAKE) clean) || exit; done
|
||||
|
@ -44,7 +45,7 @@ distclean:
|
|||
|
||||
install: $(TARGETS)
|
||||
@for i in $(SUBDIRS); do (cd "$$i" && $(MAKE) install) || exit; done
|
||||
./gtkdoc.sh -P "$(DESTDIR)$(PREFIX)" -i -- "gtkdoc/html.stamp"
|
||||
./gtkdoc.sh -P "$(DESTDIR)$(PREFIX)" -i -- "$(OBJDIR)gtkdoc/html.stamp"
|
||||
|
||||
uninstall:
|
||||
@for i in $(SUBDIRS); do (cd "$$i" && $(MAKE) uninstall) || exit; done
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
<!-- ##### SECTION tmpl/cpp.sgml:Image ##### -->
|
||||
|
||||
|
||||
|
||||
<!-- ##### SECTION tmpl/cpp.sgml:Long_Description ##### -->
|
||||
<para>
|
||||
DeforaOS code pre-processing library.
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### SECTION tmpl/cpp.sgml:See_Also ##### -->
|
||||
<para>
|
||||
DeforaOS Development Assembler (Asm), DeforaOS Development C99 C compiler (C99)
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### SECTION tmpl/cpp.sgml:Short_Description ##### -->
|
||||
DeforaOS Development Code Pre-Processor
|
||||
|
||||
|
||||
<!-- ##### SECTION tmpl/cpp.sgml:Stability_Level ##### -->
|
||||
|
||||
|
||||
|
||||
<!-- ##### SECTION tmpl/cpp.sgml:Title ##### -->
|
||||
CPP
|
||||
|
||||
|
|
@ -9,15 +9,15 @@ script=./gtkdoc.sh
|
|||
[gtkdoc/tmpl.stamp]
|
||||
type=script
|
||||
script=./gtkdoc.sh
|
||||
depends=gtkdoc/CPP.types,gtkdoc/tmpl/cpp.sgml
|
||||
depends=$(OBJDIR)gtkdoc/CPP.types,gtkdoc/tmpl/cpp.sgml
|
||||
|
||||
[gtkdoc/sgml.stamp]
|
||||
type=script
|
||||
script=./gtkdoc.sh
|
||||
depends=gtkdoc/tmpl.stamp
|
||||
depends=$(OBJDIR)gtkdoc/tmpl.stamp
|
||||
|
||||
[gtkdoc/html.stamp]
|
||||
type=script
|
||||
script=./gtkdoc.sh
|
||||
depends=gtkdoc/CPP-docs.xml,gtkdoc/sgml.stamp
|
||||
depends=gtkdoc/CPP-docs.xml,$(OBJDIR)gtkdoc/sgml.stamp
|
||||
install=
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
OBJDIR =
|
||||
PREFIX = /usr/local
|
||||
DESTDIR =
|
||||
RM = rm -f
|
||||
|
|
49
src/Makefile
49
src/Makefile
|
@ -1,4 +1,5 @@
|
|||
TARGETS = libcpp.a libcpp.so.0.0 libcpp.so.0 libcpp.so cpp
|
||||
TARGETS = $(OBJDIR)libcpp.a $(OBJDIR)libcpp.so.0.0 $(OBJDIR)libcpp.so.0 $(OBJDIR)libcpp.so $(OBJDIR)cpp
|
||||
OBJDIR =
|
||||
PREFIX = /usr/local
|
||||
DESTDIR =
|
||||
LIBDIR = $(PREFIX)/lib
|
||||
|
@ -22,37 +23,37 @@ INSTALL = install
|
|||
|
||||
all: $(TARGETS)
|
||||
|
||||
libcpp_OBJS = cpp.o parser.o scanner.o
|
||||
libcpp_OBJS = $(OBJDIR)cpp.o $(OBJDIR)parser.o $(OBJDIR)scanner.o
|
||||
libcpp_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS) -fPIC
|
||||
libcpp_LDFLAGS = $(LDFLAGSF) $(LDFLAGS)
|
||||
|
||||
libcpp.a: $(libcpp_OBJS)
|
||||
$(AR) -rc libcpp.a $(libcpp_OBJS)
|
||||
$(RANLIB) libcpp.a
|
||||
$(OBJDIR)libcpp.a: $(libcpp_OBJS)
|
||||
$(AR) -rc $(OBJDIR)libcpp.a $(libcpp_OBJS)
|
||||
$(RANLIB) $(OBJDIR)libcpp.a
|
||||
|
||||
libcpp.so.0.0 libcpp.so.0 libcpp.so: $(libcpp_OBJS)
|
||||
$(CCSHARED) -o libcpp.so.0.0 -Wl,-soname,libcpp.so.0 $(libcpp_OBJS) $(libcpp_LDFLAGS)
|
||||
$(LN) -s -- libcpp.so.0.0 libcpp.so.0
|
||||
$(LN) -s -- libcpp.so.0.0 libcpp.so
|
||||
$(OBJDIR)libcpp.so.0.0 $(OBJDIR)libcpp.so.0 $(OBJDIR)libcpp.so: $(libcpp_OBJS)
|
||||
$(CCSHARED) -o $(OBJDIR)libcpp.so.0.0 -Wl,-soname,libcpp.so.0 $(libcpp_OBJS) $(libcpp_LDFLAGS)
|
||||
$(LN) -s -- libcpp.so.0.0 $(OBJDIR)libcpp.so.0
|
||||
$(LN) -s -- libcpp.so.0.0 $(OBJDIR)libcpp.so
|
||||
|
||||
cpp_OBJS = main.o
|
||||
cpp_OBJS = $(OBJDIR)main.o
|
||||
cpp_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)
|
||||
cpp_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) -L. -L$(LIBDIR) -Wl,-rpath,$(LIBDIR) -lcpp
|
||||
cpp_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) -L$(OBJDIR). -L$(LIBDIR) -Wl,-rpath,$(LIBDIR) -lcpp
|
||||
|
||||
cpp: $(cpp_OBJS) libcpp.so
|
||||
$(CC) -o cpp $(cpp_OBJS) $(cpp_LDFLAGS)
|
||||
$(OBJDIR)cpp: $(cpp_OBJS) $(OBJDIR)libcpp.so
|
||||
$(CC) -o $(OBJDIR)cpp $(cpp_OBJS) $(cpp_LDFLAGS)
|
||||
|
||||
cpp.o: cpp.c common.h ../include/CPP.h
|
||||
$(CC) $(libcpp_CFLAGS) -c cpp.c
|
||||
$(OBJDIR)cpp.o: cpp.c common.h ../include/CPP.h
|
||||
$(CC) $(libcpp_CFLAGS) -o $(OBJDIR)cpp.o -c cpp.c
|
||||
|
||||
parser.o: parser.c parser.h ../include/CPP.h
|
||||
$(CC) $(libcpp_CFLAGS) -c parser.c
|
||||
$(OBJDIR)parser.o: parser.c parser.h ../include/CPP.h
|
||||
$(CC) $(libcpp_CFLAGS) -o $(OBJDIR)parser.o -c parser.c
|
||||
|
||||
scanner.o: scanner.c common.h ../include/CPP.h
|
||||
$(CC) $(libcpp_CFLAGS) -c scanner.c
|
||||
$(OBJDIR)scanner.o: scanner.c common.h ../include/CPP.h
|
||||
$(CC) $(libcpp_CFLAGS) -o $(OBJDIR)scanner.o -c scanner.c
|
||||
|
||||
main.o: main.c ../include/CPP.h
|
||||
$(CC) $(cpp_CFLAGS) -c main.c
|
||||
$(OBJDIR)main.o: main.c ../include/CPP.h
|
||||
$(CC) $(cpp_CFLAGS) -o $(OBJDIR)main.o -c main.c
|
||||
|
||||
clean:
|
||||
$(RM) -- $(libcpp_OBJS) $(cpp_OBJS)
|
||||
|
@ -62,12 +63,12 @@ distclean: clean
|
|||
|
||||
install: $(TARGETS)
|
||||
$(MKDIR) $(DESTDIR)$(LIBDIR)
|
||||
$(INSTALL) -m 0644 libcpp.a $(DESTDIR)$(LIBDIR)/libcpp.a
|
||||
$(INSTALL) -m 0755 libcpp.so.0.0 $(DESTDIR)$(LIBDIR)/libcpp.so.0.0
|
||||
$(INSTALL) -m 0644 $(OBJDIR)libcpp.a $(DESTDIR)$(LIBDIR)/libcpp.a
|
||||
$(INSTALL) -m 0755 $(OBJDIR)libcpp.so.0.0 $(DESTDIR)$(LIBDIR)/libcpp.so.0.0
|
||||
$(LN) -s -- libcpp.so.0.0 $(DESTDIR)$(LIBDIR)/libcpp.so.0
|
||||
$(LN) -s -- libcpp.so.0.0 $(DESTDIR)$(LIBDIR)/libcpp.so
|
||||
$(MKDIR) $(DESTDIR)$(BINDIR)
|
||||
$(INSTALL) -m 0755 cpp $(DESTDIR)$(BINDIR)/cpp
|
||||
$(INSTALL) -m 0755 $(OBJDIR)cpp $(DESTDIR)$(BINDIR)/cpp
|
||||
|
||||
uninstall:
|
||||
$(RM) -- $(DESTDIR)$(LIBDIR)/libcpp.a
|
||||
|
|
|
@ -25,8 +25,8 @@ depends=common.h,../include/CPP.h
|
|||
[cpp]
|
||||
type=binary
|
||||
sources=main.c
|
||||
depends=libcpp.so
|
||||
ldflags=-L. -L$(LIBDIR) -Wl,-rpath,$(LIBDIR) -lcpp
|
||||
depends=$(OBJDIR)libcpp.so
|
||||
ldflags=-L$(OBJDIR). -L$(LIBDIR) -Wl,-rpath,$(LIBDIR) -lcpp
|
||||
install=$(BINDIR)
|
||||
|
||||
[main.c]
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
TARGETS = define.o if.o include.o
|
||||
TARGETS = $(OBJDIR)define.o $(OBJDIR)if.o $(OBJDIR)include.o
|
||||
OBJDIR =
|
||||
PREFIX = /usr/local
|
||||
DESTDIR =
|
||||
BINDIR = $(PREFIX)/bin
|
||||
|
@ -13,23 +14,23 @@ INSTALL = install
|
|||
|
||||
all: $(TARGETS)
|
||||
|
||||
define.o_OBJS = define.o
|
||||
define.o_OBJS = $(OBJDIR)define.o
|
||||
define.o_CXXFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CXXFLAGS)
|
||||
|
||||
if.o_OBJS = if.o
|
||||
if.o_OBJS = $(OBJDIR)if.o
|
||||
if.o_CXXFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CXXFLAGS)
|
||||
|
||||
include.o_OBJS = include.o
|
||||
include.o_OBJS = $(OBJDIR)include.o
|
||||
include.o_CXXFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CXXFLAGS)
|
||||
|
||||
define.o: define.cpp cpp.sh
|
||||
$(CXX) $(define.o_CXXFLAGS) -c define.cpp
|
||||
$(OBJDIR)define.o: define.cpp cpp.sh
|
||||
$(CXX) $(define.o_CXXFLAGS) -o $(OBJDIR)define.o -c define.cpp
|
||||
|
||||
if.o: if.cpp cpp.sh
|
||||
$(CXX) $(if.o_CXXFLAGS) -c if.cpp
|
||||
$(OBJDIR)if.o: if.cpp cpp.sh
|
||||
$(CXX) $(if.o_CXXFLAGS) -o $(OBJDIR)if.o -c if.cpp
|
||||
|
||||
include.o: include.cpp cpp.sh
|
||||
$(CXX) $(include.o_CXXFLAGS) -c include.cpp
|
||||
$(OBJDIR)include.o: include.cpp cpp.sh
|
||||
$(CXX) $(include.o_CXXFLAGS) -o $(OBJDIR)include.o -c include.cpp
|
||||
|
||||
clean:
|
||||
$(RM) -- $(define.o_OBJS) $(if.o_OBJS) $(include.o_OBJS)
|
||||
|
|
|
@ -28,22 +28,27 @@
|
|||
PROGNAME="cpp.sh"
|
||||
#executables
|
||||
CPP="../src/cpp"
|
||||
[ -n "$OBJDIR" ] && CPP="${OBJDIR}cpp"
|
||||
|
||||
|
||||
#functions
|
||||
#usage
|
||||
_usage()
|
||||
{
|
||||
echo "Usage: $PROGNAME [-c] file..." 1>&2
|
||||
echo "Usage: $PROGNAME [-c][-o target] file..." 1>&2
|
||||
return 1
|
||||
}
|
||||
|
||||
|
||||
#main
|
||||
while getopts "c" name; do
|
||||
output=
|
||||
while getopts "co:" name; do
|
||||
case $name in
|
||||
c)
|
||||
;;
|
||||
o)
|
||||
output="$OPTARG"
|
||||
;;
|
||||
?)
|
||||
_usage
|
||||
exit $?
|
||||
|
|
Loading…
Reference in New Issue
Block a user