Modest/Makefile
2016-08-29 01:37:43 +04:00

72 lines
1.5 KiB
Makefile

TARGET := source
SRCDIR := source
CC ?= gcc
LIBNAME := modest
LIBPOSTFIX := .so
LIBSTATIC_POSTFIX := _static
LIB_TMP := lib
INCLUDE_TMP := include
BIN_TMP := bin
MODEST_OPTIMIZATION_LEVEL ?= -O2
CFLAGS ?= -Wall -Werror
CFLAGS += $(MODEST_OPTIMIZATION_LEVEL) -fPIC --std=c99 -I$(SRCDIR)
MODEST_BUILD_WITHOUT_THREADS ?= NO
ifeq ($(MODEST_BUILD_WITHOUT_THREADS),YES)
$(info Build without POSIX Threads)
CFLAGS += -DMODEST_BUILD_WITHOUT_THREADS
else
$(info Build with POSIX Threads)
CFLAGS += -pthread
endif
ifeq ($(OS),Windows_NT)
else
UNAM := $(shell uname -s)
ifeq ($(UNAM),Darwin)
LIBPOSTFIX := .dylib
else
CFLAGS += -D_POSIX_C_SOURCE=199309L
endif
endif
SRCS :=
HDRS :=
EXTDIRS := examples
all: create shared static
for f in $(EXTDIRS); do $(MAKE) -C $$f all; done
include $(TARGET)/myhtml/Makefile.mk
include $(TARGET)/mycss/Makefile.mk
include $(TARGET)/modest/Makefile.mk
OBJS := $(patsubst %.c,%.o,$(SRCS))
shared: $(OBJS) $(HDRS)
$(CC) -shared $(LDFLAGS) $(OBJS) -o $(LIB_TMP)/lib$(LIBNAME)$(LIBPOSTFIX)
static: shared
$(AR) crus $(LIB_TMP)/lib$(LIBNAME)$(LIBSTATIC_POSTFIX).a $(OBJS)
create:
mkdir -p lib bin
clean:
for f in $(EXTDIRS); do $(MAKE) -C $$f clean; done
rm -f $(OBJS)
rm -f $(LIB_TMP)/*
rm -f $(BIN_TMP)/*
clean_include:
rm -rf $(INCLUDE_TMP)
clone: create clean_include myhtml_clone mycss_clone modest_clone
find include -name "*.h" -exec sed -i '.bak' -E 's/^[ \t]*#[ \t]*include[ \t]*"([^"]+)"/#include <\1>/g' {} \;
find include -name "*.h.bak" -exec rm -f {} \;
.PHONY: all clean clone