include libs.mk
+ARCH=$(shell uname -m)
CFLAGS ?= -g
+ifeq ($(ARCH),x86_64)
+ CFLAGS += -fPIC
+endif
INCLUDES = -I. -Idatabase -Icommon -Ibuilddeps/scrypt-1.1.6/lib/crypto $(YAJL_INCLUDES)
HTTP_INCLUDES = -Ihttp $(MHD_INCLUDES)
CGI_INCLUDES = -Icgi $(CGI_UTIL_INCLUDES)
HTTP_LIBDIRS = $(MHD_LIBDIR) $(YAJL_LIBDIR)
CGI_LIBDIRS = $(CGI_UTIL_LIBDIR) $(YAJL_LIBDIR)
-targets = blerg.a blerg_auth.a blergtool blerglatest blerg.cgi www/build/enyo-blerg.js
-blerg_a_objects = database/database.o database/tags.o database/util.o database/subscription.o common/stringbucket.o
+targets = blerg.a blerg_auth.a blergtool blerglatest blerg.cgi perl-lib www/build/enyo-blerg.js
+blerg_a_objects = database/database.o database/tags.o database/util.o database/configuration.o database/subscription.o common/stringbucket.o
blerg_auth_a_objects = common/auth.o common/md5.o
blergtool_objects = tools/blergtool.o blerg.a
blerglatest_objects = tools/blerglatest.o blerg.a common/json.o
all: $(targets)
clean:
- rm -f $(targets) $(blerg_a_objects) $(blergtool_objects) $(blerglatest_objects) $(http_blerg_objects) $(cgi_blerg_objects) builddeps/*.a
- @make -C builddeps/scrypt-1.1.6 distclean
- @make -C builddeps/scrypt-1.1.6/lib/crypto clean
+ rm -f $(targets) $(blerg_a_objects) $(blerg_auth_a_objects) $(blergtool_objects) $(blerglatest_objects) $(http_blerg_objects) $(cgi_blerg_objects) builddeps/*.a
+ @-make -C builddeps/scrypt-1.1.6 distclean
+ @-make -C builddeps/scrypt-1.1.6/lib/crypto clean
+ @-make -C lib/perl/Blerg-Database clean
+
+.phony: perl-lib
+perl-lib:
+ cd lib/perl/Blerg-Database && perl Makefile.PL
+ make -C lib/perl/Blerg-Database
blerg.a: $(blerg_a_objects)
ar rcu $@ $(blerg_a_objects)
ar rcu $@ $(blerg_auth_a_objects)
blergtool: $(blergtool_objects)
- gcc $(LDFLAGS) $^ -o $@
+ $(CC) $(LDFLAGS) $^ -o $@
blerglatest: $(blerglatest_objects)
- gcc $(YAJL_LIBDIR) $(LDFLAGS) $^ -lyajl_s -o $@
+ $(CC) $(YAJL_LIBDIR) $(LDFLAGS) $^ -lyajl_s -o $@
blerg.httpd: $(http_blerg_objects)
- gcc $(HTTP_LIBDIRS) $(LDFLAGS) $(http_blerg_objects) -lpthread -lmicrohttpd -lyajl_s -o $@
+ $(CC) $(HTTP_LIBDIRS) $(LDFLAGS) $(http_blerg_objects) -lpthread -lmicrohttpd -lyajl_s -o $@
blerg.cgi: $(cgi_blerg_objects)
- gcc $(CGI_LIBDIRS) $(LDFLAGS) $(cgi_blerg_objects) -lcgi-util -lyajl_s -o $@
+ $(CC) $(CGI_LIBDIRS) $(LDFLAGS) $(cgi_blerg_objects) -lcgi-util -lyajl_s -o $@
http/%.o: http/%.c
- gcc $(INCLUDES) $(HTTP_INCLUDES) $(CFLAGS) -c $< -o $@
+ $(CC) $(INCLUDES) $(HTTP_INCLUDES) $(CFLAGS) -c $< -o $@
cgi/%.o: cgi/%.c
- gcc $(INCLUDES) $(CGI_INCLUDES) $(CFLAGS) -c $< -o $@
+ $(CC) $(INCLUDES) $(CGI_INCLUDES) $(CFLAGS) -c $< -o $@
%.o: %.c
- gcc $(INCLUDES) $(CFLAGS) -c $< -o $@
+ $(CC) $(INCLUDES) $(CFLAGS) -c $< -o $@
www/build/enyo-blerg.js: www/jssrc/blerg/* www/jssrc/package.js www/jssrc/package-min.js
which node >/dev/null # Please install Node.js to re-minify the JS
cd builddeps/scrypt-1.1.6 && ./configure
builddeps/scrypt.a: builddeps/scrypt-1.1.6/config.h
- make -C builddeps/scrypt-1.1.6/lib/crypto
+ make -C builddeps/scrypt-1.1.6/lib/crypto CFLAGS="$(CFLAGS)"
cp builddeps/scrypt-1.1.6/lib/crypto/scrypt.a builddeps/