diff options
-rw-r--r-- | Makefile.in | 58 | ||||
-rw-r--r-- | auto.def | 34 |
2 files changed, 73 insertions, 19 deletions
diff --git a/Makefile.in b/Makefile.in index 208e7ea..ebfb3e5 100644 --- a/Makefile.in +++ b/Makefile.in @@ -12,7 +12,7 @@ SHOBJ_CFLAGS ?= @SHOBJ_CFLAGS@ SHOBJ_LDFLAGS ?= @SHOBJ_LDFLAGS@ CFLAGS = @CFLAGS@ LDFLAGS = @LDFLAGS@ -LDLIBS += @LIBS@ +LDLIBS += @LDLIBS@ exec_prefix ?= @exec_prefix@ prefix ?= @prefix@ @@ -101,13 +101,57 @@ $(LIBJIM): $(OBJS) $(CC) $(CFLAGS) $(LDFLAGS) $(SH_LDFLAGS) -o $@ $(OBJS) $(LDLIBS) @endif -# XXX: This won't work for BSD make -%.so: jim-%.c - $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o $*.o jim-$*.c - $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ $*.o $(SH_LIBJIM) $(LDLIBS) +# Note that $> $^ is for compatibility with both GNU make and BSD make +readdir.so: jim-readdir.c + $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-readdir.o $> $^ + $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-readdir.o $(SH_LIBJIM) + +array.so: jim-array.c + $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-array.o $> $^ + $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-array.o $(SH_LIBJIM) + +clock.so: jim-clock.c + $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-clock.o $> $^ + $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-clock.o $(SH_LIBJIM) + +file.so: jim-file.c + $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-file.o $> $^ + $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-file.o $(SH_LIBJIM) + +posix.so: jim-posix.c + $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-posix.o $> $^ + $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-posix.o $(SH_LIBJIM) + +regexp.so: jim-regexp.c + $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-regexp.o $> $^ + $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-regexp.o $(SH_LIBJIM) + +syslog.so: jim-syslog.c + $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-syslog.o $> $^ + $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-syslog.o $(SH_LIBJIM) + +readline.so: jim-readline.c + $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-readline.o $> $^ + $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-readline.o $(SH_LIBJIM) @LDLIBS_readline@ + +pack.so: jim-pack.c + $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-pack.o $> $^ + $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-pack.o $(SH_LIBJIM) @LDLIBS_pack@ + +sqlite.so: jim-sqlite.c + $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-sqlite.o $> $^ + $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-sqlite.o $(SH_LIBJIM) @LDLIBS_sqlite@ + +sqlite3.so: jim-sqlite3.c + $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-sqlite3.o $> $^ + $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-sqlite3.o $(SH_LIBJIM) @LDLIBS_sqlite3@ + +win32.so: jim-win32.c + $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-win32.o $> $^ + $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-win32.o $(SH_LIBJIM) @LDLIBS_win32@ Tcl.html: jim_tcl.txt - @tclsh@ @srcdir@/make-index jim_tcl.txt | asciidoc -o $@ -d manpage - || cp @srcdir@/Tcl_shipped.html Tcl.html + @tclsh@ @srcdir@/make-index $> $^ | asciidoc -o $@ -d manpage - || cp @srcdir@/Tcl_shipped.html Tcl.html clean: rm -f *.o *.so lib*.a $(JIMSH) Tcl.html _*.c @@ -116,7 +160,7 @@ distclean: clean rm -f jimautoconf.h jim-config.h Makefile config.log autosetup/jimsh0@EXEEXT@ ship: Tcl.html - cp Tcl.html Tcl_shipped.html + cp $< Tcl_shipped.html # automake compatibility. do nothing for all these targets EMPTY_AUTOMAKE_TARGETS := dvi pdf ps info html tags ctags mostlyclean maintainer-clean check installcheck installdirs \ @@ -64,17 +64,17 @@ cc-check-types "long long" cc-check-includes sys/socket.h netinet/in.h arpa/inet.h netdb.h cc-check-includes sys/un.h dlfcn.h unistd.h crt_externs.h +define LDLIBS "" + # Haiku needs -lnetwork, Solaris needs -lnsl if {[cc-check-function-in-lib inet_ntop {nsl network}]} { # This does nothing if no libs are needed cc-with [list -libs [get-define lib_inet_ntop]] + define-append LDLIBS [get-define lib_inet_ntop] } # Solaris needs -lsocket, Windows needs -lwsock32 -if {![cc-check-function-in-lib socket socket]} { - # Last resort, may be Windows - if {[string match *mingw* [get-define host]]} { - define-append LIBS -lwsock32 - } +if {[cc-check-function-in-lib socket socket]} { + define-append LDLIBS [get-define lib_socket] } cc-check-functions ualarm lstat fork vfork system select @@ -151,6 +151,7 @@ if {[opt-bool math full]} { msg-result "Enabling math functions" define JIM_MATH_FUNCTIONS cc-check-function-in-lib sin m + define-append LDLIBS [get-define lib_sin] } if {[opt-bool ipv6 full]} { msg-result "Enabling IPv6" @@ -222,12 +223,16 @@ set dep(binary) pack set needs(exec) {expr {([have-feature vfork] && [have-feature waitpid]) || [have-feature system]}} set needs(load) {expr {[cc-check-function-in-lib dlopen dl] || [have-feature dlopen-compat]}} +set libdep(load) lib_dlopen set needs(posix) {have-feature waitpid} set needs(readdir) {have-feature opendir} set needs(readline) {cc-check-function-in-lib readline readline} +set libdep(readline) lib_readline set needs(signal) {expr {[have-feature sigaction] && [have-feature vfork]}} set needs(sqlite) {cc-check-function-in-lib sqlite_open sqlite} +set libdep(sqlite) lib_sqlite_open set needs(sqlite3) {cc-check-function-in-lib sqlite3_open sqlite3} +set libdep(sqlite3) lib_sqlite3_open set needs(syslog) {have-feature syslog} set needs(win32) {have-feature windows} @@ -283,6 +288,8 @@ foreach i [lsort $ext_all] { set met [eval $needs($i)] } + define LDLIBS_$i "" + msg-checking "Extension $i..." # Selected as a module? @@ -301,6 +308,9 @@ foreach i [lsort $ext_all] { } msg-result "module" lappend extmod $i + if {[info exists libdep($i)]} { + define-append LDLIBS_$i [get-define $libdep($i) ""] + } continue } @@ -310,20 +320,20 @@ foreach i [lsort $ext_all] { user-error "dependencies not met" } msg-result "enabled" - lappend ext $i - continue - } - - # Enabled by default? - if {$i in $ext_default} { + } elseif {$i in $ext_default} { if {!$met} { msg-result "disabled (dependencies)" continue } msg-result "enabled (default)" - lappend ext $i + } else { continue } + + lappend ext $i + if {[info exists libdep($i)]} { + define-append LDLIBS [get-define $libdep($i) ""] + } } if {[have-feature windows]} { |