qdsh

Artifact [4e3cf01e85]
Login

Artifact [4e3cf01e85]

Artifact 4e3cf01e857ea62eeba71dbab9ab411868076b5eea4f587b89dc27588e57bd8e:


TCL_DIR=$(PWD)/build/tcl8.6.10
TCL_LIB_DIR=$(TCL_DIR)/unix
TCL_INCLUDE_DIR=$(TCL_DIR)/generic
MBEDTLS_DIR=$(PWD)/build/mbedtls-2.16.6
YAJL_DIR=$(PWD)/build/lloyd-yajl-66cb08c
DJBDNS_DIR=$(PWD)/build/djbdns-1.05
LIB_PATHS=-L$(TCL_LIB_DIR) -L$(MBEDTLS_DIR)/library -L$(YAJL_DIR)/src
LIBS=-ltcl8.6 -lm -lmbedx509 -lmbedtls -lmbedcrypto -lyajl
CFLAGS+=-DTCL_UTF_MAX=6 -I$(TCL_INCLUDE_DIR) -I$(MBEDTLS_DIR)/include

OBJECTS=tclsqlite3.o qdsh.o memo.o lazy.o byteOp.o \
hmacSha1.o critbit.o record.o bitset.o parse.o regex.o \
damt.o json.o cursor.o pdf.o fractionCollate.o lru.o ssl.o posix.o hash.o \
unixSocket.o fluid.o defcmd.o packed.o \
udp_tcl.o \
libancillary/fd_recv.o libancillary/fd_send.o

default: qdsh

qdsh: $(OBJECTS)
	$(LD) $(LDFLAGS) $(OBJECTS) $(LIB_PATHS) $(LIBS) -o qdsh

%.o: %.c *.h
	$(CC) $(CFLAGS) -c $< -o $@

tclsqlite3.o: tclsqlite3.c
	$(CC) $(CFLAGS) -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION=1 -c tclsqlite3.c

tclsqlite3.c:
	(cd build/sqlite && ./configure --disable-threadsafe && make tclsqlite3.c)
	cp build/sqlite/tclsqlite3.c .

json.o: json.c
	$(CC) $(CFLAGS) -I$(YAJL_DIR)/src -c json.c

clean:
	rm -f qdsh *.o

build_tcl:
	(cd $(TCL_LIB_DIR) && \
if [ -d ../pkgs ]; then mv ../pkgs ../no.pkgs; fi && \
CC="$(CC)" CFLAGS="$(CFLAGS) -O0" \
       ./configure --disable-shared --disable-threads --disable-load --enable-symbols && \
make)

build_yajl:
	@(cd $(YAJL_DIR)/src && \
ln -fs api yajl; rm -f yajl_version.c && \
find . -name '*.c' -exec $(CC) $(CFLAGS) -I. -c {} \; && \
ar cqv libyajl.a *.o)

build_mbedtls:
	CC="$(CC)" CFLAGS="$(CFLAGS)" make -C $(MBEDTLS_DIR) no_test

build_djbdns:
	echo $(CC) $(CFLAGS) $(DJBDNS_CFLAGS) > $(DJBDNS_DIR)/conf-cc
	echo $(LD) $(LDFLAGS) > $(DJBDNS_DIR)/conf-ld
	@(cd $(DJBDNS_DIR) && make)