116 lines
3.6 KiB
Makefile
116 lines
3.6 KiB
Makefile
|
# Makefile for ucpp
|
||
|
#
|
||
|
# (c) Thomas Pornin 1999 - 2002
|
||
|
#
|
||
|
# Redistribution and use in source and binary forms, with or without
|
||
|
# modification, are permitted provided that the following conditions
|
||
|
# are met:
|
||
|
# 1. Redistributions of source code must retain the above copyright
|
||
|
# notice, this list of conditions and the following disclaimer.
|
||
|
# 2. Redistributions in binary form must reproduce the above copyright
|
||
|
# notice, this list of conditions and the following disclaimer in the
|
||
|
# documentation and/or other materials provided with the distribution.
|
||
|
# 4. The name of the authors may not be used to endorse or promote
|
||
|
# products derived from this software without specific prior written
|
||
|
# permission.
|
||
|
#
|
||
|
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
|
||
|
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||
|
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||
|
# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE
|
||
|
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||
|
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||
|
# OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||
|
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||
|
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||
|
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
||
|
# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||
|
|
||
|
.POSIX:
|
||
|
|
||
|
# ----- user configurable part -----
|
||
|
|
||
|
# Edit the variables to suit your system.
|
||
|
#
|
||
|
# use -DAUDIT to enable some internal sanity checks
|
||
|
# use -DMEM_CHECK to check the return value of malloc()
|
||
|
# (superseded by AUDIT)
|
||
|
# use -DMEM_DEBUG to enable memory leak research (warning: this
|
||
|
# slows down ucpp a bit, and greatly increases memory consumption)
|
||
|
# use -DINLINE=foobar to enable use of the 'foobar'
|
||
|
# non standard qualifier, as an equivalent to the C99 'inline'
|
||
|
# qualifier. See tune.h for details.
|
||
|
#
|
||
|
# Two FLAGS lines are given for each system type; chose the first one for
|
||
|
# debug, the second one for a fast binary.
|
||
|
|
||
|
# for a generic compiler called cc
|
||
|
#CC = cc
|
||
|
#FLAGS = -DAUDIT
|
||
|
#FLAGS = -O -DMEM_CHECK
|
||
|
|
||
|
# for Minix-86
|
||
|
#CC = cc
|
||
|
#LDFLAGS = -i
|
||
|
#FLAGS = -m -DAUDIT
|
||
|
#FLAGS = -O -m -DMEM_CHECK
|
||
|
|
||
|
# for gcc
|
||
|
CC = gcc
|
||
|
FLAGS = -O3 -W -Wall -ansi
|
||
|
#FLAGS = -g -W -Wall -ansi -DAUDIT -DMEM_DEBUG
|
||
|
#FLAGS = -O3 -mcpu=pentiumpro -fomit-frame-pointer -W -Wall -ansi -DMEM_CHECK
|
||
|
#FLAGS = -O -pg -W -Wall -ansi -DMEM_CHECK
|
||
|
#LDFLAGS = -pg
|
||
|
|
||
|
# for the Compaq C compiler on Alpha/Linux
|
||
|
#CC = ccc
|
||
|
#FLAGS = -w0 -g -DAUDIT
|
||
|
#FLAGS = -w0 -fast -DMEM_CHECK
|
||
|
|
||
|
# for the Sun Workshop C Compiler
|
||
|
#CC = cc
|
||
|
#FLAGS = -g -Xa -DAUDIT
|
||
|
#FLAGS = -Xa -fast -DMEM_CHECK
|
||
|
|
||
|
# flags for the link step
|
||
|
LIBS =
|
||
|
#LIBS = libefence.a
|
||
|
#LIBS = -lgc_dbg
|
||
|
|
||
|
STAND_ALONE = -DSTAND_ALONE
|
||
|
|
||
|
ifdef STAND_ALONE
|
||
|
CSRC = mem.c nhash.c cpp.c lexer.c assert.c macro.c eval.c
|
||
|
FINAL_STEP = $(CC) $(LDFLAGS) -DUCPP_CONFIG $(STAND_ALONE) -o ucpp $(CSRC) $(LIBS)
|
||
|
endif
|
||
|
|
||
|
# ----- nothing should be changed below this line -----
|
||
|
|
||
|
COBJ = mem.o nhash.o cpp.o lexer.o assert.o macro.o eval.o
|
||
|
CFLAGS = $(FLAGS)
|
||
|
|
||
|
all: ucpp
|
||
|
@ar cq libucpp.a *.o
|
||
|
|
||
|
clean:
|
||
|
@rm -f *.o ucpp core *.a
|
||
|
|
||
|
ucpp: $(COBJ)
|
||
|
@$(FINAL_STEP)
|
||
|
|
||
|
assert.o: tune.h ucppi.h cpp.h nhash.h mem.h
|
||
|
@$(CC) $(CFLAGS) -c assert.c
|
||
|
cpp.o: tune.h ucppi.h cpp.h nhash.h mem.h
|
||
|
@$(CC) $(CFLAGS) -c cpp.c
|
||
|
eval.o: tune.h ucppi.h cpp.h nhash.h mem.h arith.c arith.h
|
||
|
@$(CC) $(CFLAGS) -c eval.c
|
||
|
lexer.o: tune.h ucppi.h cpp.h nhash.h mem.h
|
||
|
@$(CC) $(CFLAGS) -c lexer.c
|
||
|
macro.o: tune.h ucppi.h cpp.h nhash.h mem.h
|
||
|
@$(CC) $(CFLAGS) -c macro.c
|
||
|
mem.o: mem.h
|
||
|
@$(CC) $(CFLAGS) -c mem.c
|
||
|
nhash.o: nhash.h mem.h
|
||
|
@$(CC) $(CFLAGS) -c nhash.c
|