aboutsummaryrefslogtreecommitdiff
path: root/Makefile.gnu
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile.gnu')
-rw-r--r--Makefile.gnu49
1 files changed, 49 insertions, 0 deletions
diff --git a/Makefile.gnu b/Makefile.gnu
new file mode 100644
index 0000000..d8b039b
--- /dev/null
+++ b/Makefile.gnu
@@ -0,0 +1,49 @@
+# GNU makefile
+
+
+# User configuration
+DESTDIR ?= /local
+CFLAGS ?= -fPIC -O2 -Iinclude
+LDFLAGS ?= -lm
+TARGET = bh
+ENABLE_MT = 1
+
+
+# System configuration
+include Makefile.srcs
+
+SRCS += $(SRCS_POSIX)
+ifeq ($(ENABLE_MT), 1)
+ SRCS += $(SRCS_POSIX_MT)
+ CFLAGS += -pthread
+ LDFLAGS += -lpthread
+else
+ SRCS += $(SRCS_DUMMY_MT)
+endif
+
+INCDIR ?= $(DESTDIR)/usr/include
+INSTALLDIR ?= $(DESTDIR)/usr/lib
+STATICLIB = lib$(TARGET).a
+SHAREDLIB = lib$(TARGET).so
+OBJS = $(SRCS:.c=.o)
+
+
+# Targets
+all: $(STATICLIB) $(SHAREDLIB)
+
+dist: $(STATICLIB) $(SHAREDLIB)
+ mkdir -p dist
+ cp *.a dist/
+ cp *.so dist/
+
+$(STATICLIB): $(OBJS)
+ $(AR) r $@ $(OBJS)
+
+$(SHAREDLIB): $(OBJS)
+ $(CC) -s -shared $(LDFLAGS) -o $@ $(OBJS)
+
+.c.o:
+ $(CC) $(CFLAGS) -c $< -o $@
+
+clean:
+ -rm -rf $(OBJS) $(STATICLIB) $(SHAREDLIB) dist