Newer
Older
snipet / kscript / Makefile
Nomura Kei on 9 Aug 2023 1 KB add kscript
# vim: ts=4 sw=4 sts=4 fenc=utf-8 ff=unix :
# =====================================================================
#  Makefile  for  libsc
# =====================================================================

# ---------------------------------------------------------------------
#  SETTING & OPTION
# ---------------------------------------------------------------------
TARGET     = kscript.exe
SRCDIR     = src
SRCS       = $(wildcard src/*.c)
OBJS       = $(SRCS:src/%.c=obj/%.o)

INCLUDES   = -Iinclude -Itests
CFLAGS     = -Wall `./sc-config --cflags`
LDFLAGS    =
LIBS       = `./sc-config --libs`

# for tests
TESTTARGET = libsctest.exe
TESTSRCS   = $(wildcard tests/*.c)
TESTOBJS   = $(TESTSRCS:tests/%.c=tests/%.o) $(SRCS:src/%.c=tests/%.o)
TESTCFLAGS = $(CFLAGS) -DSC_DEBUG -g -fprofile-arcs -ftest-coverage
#TESTCFLAGS = $(CFLAGS) -g -fprofile-arcs -ftest-coverage
TESTLIBS   = `./sc-config --libs`

.SUFFIXES: .o .c

# ---------------------------------------------------------------------
#  COMMANDS
# ---------------------------------------------------------------------
AS     = as
AR     = ar
CC     = gcc
CP     = cp
MV     = mv
RANLIB = ranlib
RM     = rm
STRIP  = strip

all: $(TARGET)

test: $(TESTTARGET)

$(TARGET): $(OBJS)
	$(CC) $(LDFLAGS) -o $(TARGET) $^ $(LIBS)

obj/%.o: src/%.c
	$(CC) $(INCLUDES) $(CFLAGS) -c -o $@ $<

clean:
	$(RM) -f $(TARGET) $(OBJS)
	$(RM) -f $(TESTTARGET) $(TESTOBJS) $(TESTS)
	$(RM) -f *~ */*~
	$(RM) -f unittest.tmp
	$(RM) -f */*.gcno */*.gcda
	$(RM) -f *.c.gcov

$(TESTTARGET): $(TESTOBJS)
	$(CC) $(TESTCFLAGS) -o $(TESTTARGET) $^ $(TESTLIBS)

tests/%.o: src/%.c
	$(CC) $(INCLUDES) $(TESTCFLAGS) -c -o $@ $<

tests/%.o: tests/%.c
	$(CC) $(INCLUDES) $(TESTCFLAGS) -c -o $@ $<