Skip to content

Commit

Permalink
sandbox #64: Init static libs
Browse files Browse the repository at this point in the history
without -DSTATIC (yeah)
add static DYNLIBS to libpotion.a
symlink bin/potion to bin/potion-s
defaults to bin/potion-s
  • Loading branch information
Reini Urban committed Oct 20, 2013
1 parent caf6e4a commit 79debe2
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 7 deletions.
19 changes: 16 additions & 3 deletions Makefile
Expand Up @@ -17,6 +17,11 @@ SRC += core/callcc.c
endif
ifneq (${SANDBOX},1)
SRC += core/file.c core/load.c
else
SRC += lib/aio.c lib/readline/readline.c lib/readline/linenoise.c
ifeq ($(WIN32),1)
SRC += lib/readline/win32fixes.c
endif
endif

ifeq (${JIT_X86},1)
Expand Down Expand Up @@ -68,6 +73,7 @@ PNLIB += $(foreach s,syntax syntax-p5,lib/potion/lib$s${DLL})
EXTLIBS = -Llib -luv
ifeq (${WIN32},1)
LIBUV = lib/libuv-11.dll lib/libuv.dll.a
EXTLIBS += -lw32_32
else
LIBUV = lib/libuv${DLL}
endif
Expand Down Expand Up @@ -107,8 +113,13 @@ default: pn p2 libs
+${MAKE} -s usage

all: default libs static docall test
ifneq (${SANDBOX},1)
pn: bin/potion${EXE} ${PNLIB}
p2: bin/p2${EXE} ${PNLIB}
else
pn: static
p2: static
endif
bins: ${BINS}
libs: ${PNLIB} ${DYNLIBS}
static: lib/libpotion.a bin/potion-s${EXE} lib/libp2.a bin/p2-s${EXE}
Expand Down Expand Up @@ -332,12 +343,14 @@ bin/potion-s${EXE}: ${OBJ_POTION} lib/libpotion.a lib/aio.o lib/readline/readlin
@${CC} ${CFLAGS} ${LDFLAGS} ${OBJ_POTION} -o $@ lib/readline/*.o lib/aio.o \
lib/libpotion.a ${LIBPTH} ${EXTLIBS} ${LIBS}
@if [ "${DEBUG}" != "1" ]; then ${ECHO} STRIP $@; ${STRIP} $@; fi
@if [ "${SANDBOX}" = "1" ]; then rm bin/potion${EXE}; cd bin; ln -s potion-s${EXE} potion${EXE}; cd ..; fi

bin/p2-s${EXE}: ${OBJ_P2} lib/libp2.a lib/aio.o2 lib/readline/readline.o
@${ECHO} LINK $@
@${CC} ${CFLAGS} ${LDFLAGS} ${OBJ_P2} -o $@ lib/readline/*.o lib/aio.o2 \
lib/libp2.a ${LIBPTH} ${EXTLIBS} ${LIBS}
@if [ "${DEBUG}" != "1" ]; then ${ECHO} STRIP $@; ${STRIP} $@; fi
@if [ "${SANDBOX}" = "1" ]; then rm bin/p2${EXE}; cd bin; ln -s p2-s${EXE} p2${EXE}; cd ..; fi

lib/readline/readline.o: lib/readline/readline.c lib/readline/linenoise.c
@${ECHO} CC $@
Expand Down Expand Up @@ -669,16 +682,16 @@ fulltest: testable test/spectest.data
# for LTO gold -O4
bin/potion-test${EXE}: ${OBJ_TEST} lib/libpotion.a
@${ECHO} LINK $@
@if ${CC} ${CFLAGS} ${LDFLAGS} ${OBJ_TEST} -o $@ lib/libpotion.a ${RPATH} ${LIBPTH} ${LIBS}; then true; else \
@if ${CC} ${CFLAGS} ${LDFLAGS} ${OBJ_TEST} -o $@ lib/libpotion.a ${RPATH} ${LIBPTH} ${EXTLIBS} ${LIBS}; then true; else \
${CC} ${CFLAGS} ${LDFLAGS} ${OBJ_TEST} -o $@ ${OBJ} ${OBJ_SYN} ${LIBPTH} ${LIBS}; fi

bin/gc-test${EXE}: ${OBJ_GC_TEST} lib/libp2.a
@${ECHO} LINK $@
@${CC} ${CFLAGS} ${LDFLAGS} ${OBJ_GC_TEST} -o $@ lib/libp2.a ${RPATH} ${LIBPTH} ${LIBS}
@${CC} ${CFLAGS} ${LDFLAGS} ${OBJ_GC_TEST} -o $@ lib/libp2.a ${RPATH} ${LIBPTH} ${EXTLIBS} ${LIBS}

bin/gc-bench${EXE}: ${OBJ_GC_BENCH} lib/libp2.a
@${ECHO} LINK $@
@${CC} ${CFLAGS} ${LDFLAGS} ${OBJ_GC_BENCH} -o $@ lib/libp2.a ${RPATH} ${LIBPTH} ${LIBS}
@${CC} ${CFLAGS} ${LDFLAGS} ${OBJ_GC_BENCH} -o $@ lib/libp2.a ${RPATH} ${LIBPTH} ${EXTLIBS} ${LIBS}

bin/p2-test${EXE}: ${OBJ_P2_TEST} lib/libp2.a
@${ECHO} LINK $@
Expand Down
3 changes: 3 additions & 0 deletions core/internal.c
Expand Up @@ -110,6 +110,9 @@ static void potion_init(Potion *P) {
#ifndef SANDBOX
potion_file_init(P);
potion_loader_init(P);
#else
Potion_Init_readline(P);
Potion_Init_aio(P);
#endif

pn_filenames = PN_TUP0();
Expand Down
11 changes: 7 additions & 4 deletions core/potion.h
Expand Up @@ -892,14 +892,19 @@ void potion_source_init(Potion *);
void potion_lick_init(Potion *);
void potion_compiler_init(Potion *);
void potion_vm_init(Potion *);
void potion_cont_init(Potion *);
#ifndef SANDBOX
void potion_file_init(Potion *);
void potion_loader_init(Potion *);
void potion_loader_add(Potion *, PN path);
PN potion_load(Potion *, PN, PN, PN);
char *potion_find_file(Potion *, char *str, PN_SIZE str_len);
#else
void Potion_Init_readline(Potion *);
void Potion_Init_aio(Potion *);
#endif
void potion_cont_init(Potion *);
void potion_dump_stack(Potion *);

void potion_dump_stack(Potion *);
PN potion_any_is_nil(Potion *, PN, PN);
PN potion_num_string(Potion *, PN, PN);
PN potion_gc_reserved(Potion *, PN, PN);
Expand All @@ -914,8 +919,6 @@ PN potion_eval(Potion *, PN);
PN potion_run(Potion *, PN, int);
PN_F potion_jit_proto(Potion *, PN);

PN potion_load(Potion *, PN, PN, PN);
char *potion_find_file(Potion *, char *str, PN_SIZE str_len);
PN potion_class_find(Potion *, PN);
PNType potion_class_type(Potion *, PN);

Expand Down

0 comments on commit 79debe2

Please sign in to comment.