diff options
| author | Oskari Timperi <oskari.timperi@iki.fi> | 2014-05-26 10:28:48 +0300 |
|---|---|---|
| committer | Oskari Timperi <oskari.timperi@iki.fi> | 2014-05-26 10:28:48 +0300 |
| commit | c03f706b9c522b2d82ff3919bb1e9f275370a013 (patch) | |
| tree | c0b20b051f28f2182b2c293c2e3c683e7e4ea0b7 /Makefile | |
| parent | 992ae64c435e7126ecf02d8b8de803036eace2e3 (diff) | |
| download | libuvh-c03f706b9c522b2d82ff3919bb1e9f275370a013.tar.gz libuvh-c03f706b9c522b2d82ff3919bb1e9f275370a013.zip | |
add support for building both static and shared lib
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 30 |
1 files changed, 28 insertions, 2 deletions
@@ -7,21 +7,46 @@ LDFLAGS += CPPFLAGS += -Isrc LDLIBS += -luv +SH_LDFLAGS = $(LDFLAGS) -shared +SH_CFLAGS = $(CFLAGS) -DBUILDING_UVH_SHARED + PLATFORM = $(shell uname -s | tr [A-Z] [a-z]) ifeq ($(findstring mingw32,$(PLATFORM)),mingw32) LDLIBS += -lws2_32 -lpsapi -liphlpapi +SHAREDNAME = libuvh.dll else +SHAREDNAME = libuvh.so endif -all: libuvh.a examples +SOURCES = uvh.c http_parser.c sds.c +STATIC_OBJS = $(addprefix src/static_,$(SOURCES:.c=.o)) +SHARED_OBJS = $(addprefix src/shared_,$(SOURCES:.c=.o)) + +.PHONY: all +all: static shared examples + +.PHONY: static +static: libuvh.a + +.PHONY: shared +shared: $(SHAREDNAME) .PHONY: examples examples: hello chunked fileserver -libuvh.a: src/uvh.o src/http_parser.o src/sds.o +src/static_%.o: src/%.c + $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< + +src/shared_%.o: src/%.c + $(CC) $(SH_CFLAGS) $(CPPFLAGS) -c -o $@ $< + +libuvh.a: $(STATIC_OBJS) $(AR) rcs $@ $^ +$(SHAREDNAME): $(SHARED_OBJS) + $(LD) $(SH_LDFLAGS) -o $@ $^ $(LDLIBS) + hello: examples/hello.o libuvh.a $(LD) $(LDFLAGS) -o $@ $^ $(LDLIBS) @@ -39,3 +64,4 @@ clean: rm -f hello rm -f chunked rm -f fileserver + rm -f $(SHAREDNAME) |
