picrin/lib/Makefile

58 lines
1.1 KiB
Makefile

LIBPICRIN_SRCS = \
blob.c\
bool.c\
char.c\
cont.c\
data.c\
debug.c\
dict.c\
error.c\
gc.c\
load.c\
number.c\
pair.c\
port.c\
proc.c\
record.c\
state.c\
string.c\
symbol.c\
var.c\
vector.c\
weak.c\
ext/eval.c\
ext/read.c\
ext/write.c\
ext/file.c
LIBPICRIN_OBJS = \
$(LIBPICRIN_SRCS:.c=.o)
LIBPICRIN_HEADERS = \
include/picrin.h\
include/picconf.h\
include/picrin/extra.h\
include/picrin/setup.h\
include/picrin/value.h\
khash.h\
object.h\
state.h
CFLAGS += -I./include -Wall -Wextra -g
mini-picrin: libpicrin.so ext/main.o
$(CC) $(CFLAGS) -o $@ libpicrin.so ext/main.o
libpicrin.so: $(LIBPICRIN_OBJS)
$(CC) $(CFLAGS) -shared -o $@ $(LIBPICRIN_OBJS) $(LDFLAGS)
libpicrin.so.minimal: $(LIBPICRIN_SRCS)
$(CC) -I./include -Os -DPIC_USE_LIBC=0 -DPIC_USE_CALLCC=0 -DPIC_USE_FILE=0 -DPIC_USE_READ=0 -DPIC_USE_WRITE=0 -DPIC_USE_EVAL=0 -nostdlib -ffreestanding -fno-stack-protector -shared -o $@ $(LIBPICRIN_SRCS) $(LDFLAGS)
strip $@
$(LIBPICRIN_OBJS): $(LIBPICRIN_HEADERS)
clean:
$(RM) $(LIBPICRIN_OBJS) libpicrin.so libpicrin.so.minimal
.PHONY: clean