Download
32 lines 740 BMakefileModified 2022-11-09 raw
1234567891011121314151617181920212223242526272829303132
CC=cc
PREFIX=/usr/local
CFLAGS=-std=c99 -Werror -D_XOPEN_SOURCE=700 -D_POSIX_C_SOURCE=200809L -flto -D_GNU_SOURCE -fPIC
CWARN=-Wall -Wextra
EXTRA=
G=-ggdb
O=-O0
LIBS=-lgc
ALL_FLAGS=$(CFLAGS) $(EXTRA) $(CWARN) $(G) $(O) $(LIBS)

all: libintern.so

libintern.so: intern.c
	cc $(ALL_FLAGS) -shared -Wl,-soname,libintern.so -o $@ $^ -lgc

clean:
	rm -f libintern.so

test: test.c libintern.so
	cc $(ALL_FLAGS) -Wl,-rpath,$(PWD)/ -L$(PWD)/ -lintern test.c -o test
	./test

profile: profile.c libintern.so
	cc $(ALL_FLAGS) -L./ -lintern profile.c -o profile
	./profile 10 1000

install: libintern.so
	mkdir -p -m 755 "$(PREFIX)/lib" "$(PREFIX)/include"
	cp libintern.so "$(PREFIX)/lib"
	cp intern.h "$(PREFIX)/include"

.PHONY: all clean install