Make code a little more portable. In particular, fix sed scripts.
git-svn-id: https://shellinabox.googlecode.com/svn/trunk@56 0da03de8-d603-11dd-86c2-0f8696b7b6f9
This commit is contained in:
parent
90d9d492b7
commit
75c09f9f83
6 changed files with 508 additions and 201 deletions
216
Makefile.am
216
Makefile.am
|
@ -49,7 +49,7 @@ libhttp_la_SOURCES = libhttp/hashmap.c \
|
||||||
$(LIBHTTP_INCLUDES) \
|
$(LIBHTTP_INCLUDES) \
|
||||||
libhttp/libhttp.sym
|
libhttp/libhttp.sym
|
||||||
libhttp_la_LDFLAGS = -export-symbols $(top_srcdir)/libhttp/libhttp.sym \
|
libhttp_la_LDFLAGS = -export-symbols $(top_srcdir)/libhttp/libhttp.sym \
|
||||||
-version 1:0:0 -ldl
|
-version 1:0:0
|
||||||
|
|
||||||
shellinaboxd_SOURCES = shellinabox/shellinaboxd.c \
|
shellinaboxd_SOURCES = shellinabox/shellinaboxd.c \
|
||||||
shellinabox/externalfile.c \
|
shellinabox/externalfile.c \
|
||||||
|
@ -71,21 +71,24 @@ shellinaboxd_SOURCES = shellinabox/shellinaboxd.c \
|
||||||
shellinabox/beep.wav
|
shellinabox/beep.wav
|
||||||
shellinaboxd_LDADD = liblogging.la \
|
shellinaboxd_LDADD = liblogging.la \
|
||||||
libhttp.la
|
libhttp.la
|
||||||
shellinaboxd_LDFLAGS = -static -ldl
|
shellinaboxd_LDFLAGS = -static
|
||||||
|
|
||||||
libtool: $(LIBTOOL_DEPS)
|
libtool: $(LIBTOOL_DEPS)
|
||||||
$(SHELL) ./config.status --recheck
|
$(SHELL) ./config.status --recheck
|
||||||
|
|
||||||
shellinaboxd.1: shellinabox/shellinaboxd.man.in
|
shellinaboxd.1: shellinabox/shellinaboxd.man.in
|
||||||
@echo preprocess "$<" '>'"$@"
|
@src="${top_srcdir}/shellinabox/shellinaboxd.man.in"; \
|
||||||
@if echo " $(DEFS)" | grep HAVE_OPENSSL_BIO_H | \
|
echo preprocess "$$src" '>'"$@"; \
|
||||||
grep HAVE_OPENSSL_ERR_H | \
|
if echo " $(DEFS)" | grep HAVE_OPENSSL_BIO_H | \
|
||||||
grep -q HAVE_OPENSSL_SSL_H; then \
|
grep HAVE_OPENSSL_ERR_H | \
|
||||||
sed -e '/^#ifdef *HAVE_OPENSSL$$/d;/^#endif$$/d' "$<" >"$@"; \
|
grep -q HAVE_OPENSSL_SSL_H; then \
|
||||||
else \
|
sed -e '/^#ifdef *HAVE_OPENSSL$$/d' \
|
||||||
sed -e '/^#ifdef *HAVE_OPENSSL$$/,/^#endif$$/d' "$<" >"$@"; \
|
-e '/^#endif$$/d' "$$src" >"$@"; \
|
||||||
fi
|
else \
|
||||||
@man -Tps "./$@" >`echo "$@"|sed -e 's/\.[^.]*$$/.ps/'` || true
|
sed -e '/^#ifdef *HAVE_OPENSSL$$/,/^#endif$$/d' "$$src" >"$@"; \
|
||||||
|
fi
|
||||||
|
@man -Tps "./$@" >`echo "$@" 2>/dev/null|sed -e 's/\.[^.]*$$/.ps/'` \
|
||||||
|
|| true
|
||||||
|
|
||||||
clean-local:
|
clean-local:
|
||||||
-rm -rf shellinaboxd.1 \
|
-rm -rf shellinaboxd.1 \
|
||||||
|
@ -99,114 +102,135 @@ clean-local:
|
||||||
@$(ECHO) objcopy "$<" "$@"
|
@$(ECHO) objcopy "$<" "$@"
|
||||||
@objcopy \
|
@objcopy \
|
||||||
-I binary `echo "$(host_cpu)" | \
|
-I binary `echo "$(host_cpu)" | \
|
||||||
grep -q '^i[0-9]86$$' && \
|
grep -q '^i[0-9]86$$' && \
|
||||||
echo ' -O elf32-i386 -B i386' || \
|
echo ' -O elf32-i386 -B i386' || \
|
||||||
echo ' -O elf64-x86-64 -B i386:x86-64'` \
|
echo ' -O elf64-x86-64 -B i386:x86-64'` \
|
||||||
`echo "$<" | sed -e ' \
|
`echo "$<" | sed \
|
||||||
s/\(.*\/\)\([^.]*\)\([.].*\)/\1\2\3=\2 /; \
|
-e 's/\(.*\/\)\([^.]*\)\([.].*\)/\1\2\3=\2 /' \
|
||||||
t0; s/\([^.]*\)\([.].*\)/\1\2=\1 /; t0; s/.*/&=& /;:0; \
|
-e 't0' \
|
||||||
s/$$/aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ/; \
|
-e 's/\([^.]*\)\([.].*\)/\1\2=\1 /' \
|
||||||
:1; \
|
-e 't0' \
|
||||||
s/\(=[^_]*\)_\([a-z]\)\([^ ]* .*\2\)\(.\)/\1\4\3\4/; \
|
-e 's/.*/&=& /' \
|
||||||
t1; \
|
-e ':0' \
|
||||||
s/.\{53\}$$//; \
|
-e 's/$$/aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ/' \
|
||||||
s/[/.]/_/g; \
|
-e ':1' \
|
||||||
s/^/--redefine-sym _binary_/; \
|
-e 's/\(=[^_]*\)_\([a-z]\)\([^ ]* .*\2\)\(.\)/\1\4\3\4/' \
|
||||||
s/\([^=]*\)\(=[^ ]*\)/& \1_end\2End/; \
|
-e 't1' \
|
||||||
s/\([^=]*\)\(=[^ ]*\)/& \1_start\2Start/; \
|
-e 's/.\{53\}$$//' \
|
||||||
s/[^ ]*\([^=]*\)=[^ ]*/-N\1_size/'` \
|
-e 's/[/.]/_/g' \
|
||||||
|
-e 's/^/--redefine-sym _binary_/' \
|
||||||
|
-e 's/\([^=]*\)\(=[^ ]*\)/& \1_end\2End/' \
|
||||||
|
-e 's/\([^=]*\)\(=[^ ]*\)/& \1_start\2Start/' \
|
||||||
|
-e 's/[^ ]*\([^=]*\)=[^ ]*/-N\1_size/'` \
|
||||||
"$<" "$@"
|
"$<" "$@"
|
||||||
|
|
||||||
.html.o:
|
.html.o:
|
||||||
@$(ECHO) objcopy "$<" "$@"
|
@$(ECHO) objcopy "$<" "$@"
|
||||||
@objcopy \
|
@objcopy \
|
||||||
-I binary `echo "$(host_cpu)" | \
|
-I binary `echo "$(host_cpu)" | \
|
||||||
grep -q '^i[0-9]86$$' && \
|
grep -q '^i[0-9]86$$' && \
|
||||||
echo ' -O elf32-i386 -B i386' || \
|
echo ' -O elf32-i386 -B i386' || \
|
||||||
echo ' -O elf64-x86-64 -B i386:x86-64'` \
|
echo ' -O elf64-x86-64 -B i386:x86-64'` \
|
||||||
`echo "$<" | sed -e ' \
|
`echo "$<" | sed \
|
||||||
s/\(.*\/\)\([^.]*\)\([.].*\)/\1\2\3=\2 /; \
|
-e 's/\(.*\/\)\([^.]*\)\([.].*\)/\1\2\3=\2 /' \
|
||||||
t0; s/\([^.]*\)\([.].*\)/\1\2=\1 /; t0; s/.*/&=& /;:0; \
|
-e 't0' \
|
||||||
s/$$/aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ/; \
|
-e 's/\([^.]*\)\([.].*\)/\1\2=\1 /' \
|
||||||
:1; \
|
-e 't0' \
|
||||||
s/\(=[^_]*\)_\([a-z]\)\([^ ]* .*\2\)\(.\)/\1\4\3\4/; \
|
-e 's/.*/&=& /' \
|
||||||
t1; \
|
-e ':0' \
|
||||||
s/.\{53\}$$//; \
|
-e 's/$$/aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ/' \
|
||||||
s/[/.]/_/g; \
|
-e ':1' \
|
||||||
s/^/--redefine-sym _binary_/; \
|
-e 's/\(=[^_]*\)_\([a-z]\)\([^ ]* .*\2\)\(.\)/\1\4\3\4/' \
|
||||||
s/\([^=]*\)\(=[^ ]*\)/& \1_end\2End/; \
|
-e 't1' \
|
||||||
s/\([^=]*\)\(=[^ ]*\)/& \1_start\2Start/; \
|
-e 's/.\{53\}$$//' \
|
||||||
s/[^ ]*\([^=]*\)=[^ ]*/-N\1_size/'` \
|
-e 's/[/.]/_/g' \
|
||||||
|
-e 's/^/--redefine-sym _binary_/' \
|
||||||
|
-e 's/\([^=]*\)\(=[^ ]*\)/& \1_end\2End/' \
|
||||||
|
-e 's/\([^=]*\)\(=[^ ]*\)/& \1_start\2Start/' \
|
||||||
|
-e 's/[^ ]*\([^=]*\)=[^ ]*/-N\1_size/'` \
|
||||||
"$<" "$@"
|
"$<" "$@"
|
||||||
|
|
||||||
.ico.o:
|
.ico.o:
|
||||||
@$(ECHO) objcopy "$<" "$@"
|
@$(ECHO) objcopy "$<" "$@"
|
||||||
@objcopy \
|
@objcopy \
|
||||||
-I binary `echo "$(host_cpu)" | \
|
-I binary `echo "$(host_cpu)" | \
|
||||||
grep -q '^i[0-9]86$$' && \
|
grep -q '^i[0-9]86$$' && \
|
||||||
echo ' -O elf32-i386 -B i386' || \
|
echo ' -O elf32-i386 -B i386' || \
|
||||||
echo ' -O elf64-x86-64 -B i386:x86-64'` \
|
echo ' -O elf64-x86-64 -B i386:x86-64'` \
|
||||||
`echo "$<" | sed -e ' \
|
`echo "$<" | sed \
|
||||||
s/\(.*\/\)\([^.]*\)\([.].*\)/\1\2\3=\2 /; \
|
-e 's/\(.*\/\)\([^.]*\)\([.].*\)/\1\2\3=\2 /' \
|
||||||
t0; s/\([^.]*\)\([.].*\)/\1\2=\1 /; t0; s/.*/&=& /;:0; \
|
-e 't0' \
|
||||||
s/$$/aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ/; \
|
-e 's/\([^.]*\)\([.].*\)/\1\2=\1 /' \
|
||||||
:1; \
|
-e 't0' \
|
||||||
s/\(=[^_]*\)_\([a-z]\)\([^ ]* .*\2\)\(.\)/\1\4\3\4/; \
|
-e 's/.*/&=& /' \
|
||||||
t1; \
|
-e ':0' \
|
||||||
s/.\{53\}$$//; \
|
-e 's/$$/aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ/' \
|
||||||
s/[/.]/_/g; \
|
-e ':1' \
|
||||||
s/^/--redefine-sym _binary_/; \
|
-e 's/\(=[^_]*\)_\([a-z]\)\([^ ]* .*\2\)\(.\)/\1\4\3\4/' \
|
||||||
s/\([^=]*\)\(=[^ ]*\)/& \1_end\2End/; \
|
-e 't1' \
|
||||||
s/\([^=]*\)\(=[^ ]*\)/& \1_start\2Start/; \
|
-e 's/.\{53\}$$//' \
|
||||||
s/[^ ]*\([^=]*\)=[^ ]*/-N\1_size/'` \
|
-e 's/[/.]/_/g' \
|
||||||
|
-e 's/^/--redefine-sym _binary_/' \
|
||||||
|
-e 's/\([^=]*\)\(=[^ ]*\)/& \1_end\2End/' \
|
||||||
|
-e 's/\([^=]*\)\(=[^ ]*\)/& \1_start\2Start/' \
|
||||||
|
-e 's/[^ ]*\([^=]*\)=[^ ]*/-N\1_size/'` \
|
||||||
"$<" "$@"
|
"$<" "$@"
|
||||||
|
|
||||||
.js.o:
|
.js.o:
|
||||||
@$(ECHO) preprocess "$<" \| objcopy "$@"
|
@$(ECHO) preprocess "$<" \| objcopy "$@"
|
||||||
@trap 'rm -f "$@.pre"' EXIT INT TERM QUIT; \
|
@trap 'rm -f "$@.pre"' EXIT INT TERM QUIT; \
|
||||||
sed -e "`sed -e 's/^#define *\([^ ]*\) *\(.*\)/\/^[^#]\/s\/\1\/\2 \\\\\/* \1 *\\\\\/\/g/; \
|
sed -e "`sed -e 's/^#define *\([^ ]*\) *\(.*\)/\/^[^#]\/s\/\1\/\2 \\\\\/* \1 *\\\\\/\/g/' \
|
||||||
t;d' "$<"` \
|
-e t \
|
||||||
;s/^#/\/\/ #/ \
|
-e d "$<"`" \
|
||||||
;s/VERSION/\"@VERSION@\"/g" "$<" >"$@.pre" && \
|
-e "s/^#/\/\/ #/" \
|
||||||
objcopy \
|
-e "s/VERSION/\"@VERSION@\"/g" "$<" >"$@.pre" && \
|
||||||
|
\
|
||||||
-I binary `echo $(host_cpu) | \
|
-I binary `echo $(host_cpu) | \
|
||||||
grep -q '^i[0-9]86$$' && \
|
grep -q '^i[0-9]86$$' && \
|
||||||
echo ' -O elf32-i386 -B i386' || \
|
echo ' -O elf32-i386 -B i386' || \
|
||||||
echo ' -O elf64-x86-64 -B i386:x86-64'` \
|
echo ' -O elf64-x86-64 -B i386:x86-64'` \
|
||||||
`echo "$@" | sed -e ' \
|
`echo "$@" | sed \
|
||||||
s/\(.*\/\)\([^.]*\)\([.].*\)/\1\2\3=\2 /; \
|
-e 's/\(.*\/\)\([^.]*\)\([.].*\)/\1\2\3=\2 /' \
|
||||||
t0; s/\([^.]*\)\([.].*\)/\1\2=\1 /; t0; s/.*/&=& /;:0; \
|
-e 't0' \
|
||||||
s/$$/aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ/; \
|
-e 's/\([^.]*\)\([.].*\)/\1\2=\1 /' \
|
||||||
:1; \
|
-e 't0' \
|
||||||
s/\(=[^_]*\)_\([a-z]\)\([^ ]* .*\2\)\(.\)/\1\4\3\4/; \
|
-e 's/.*/&=& /' \
|
||||||
t1; \
|
-e ':0' \
|
||||||
s/.\{53\}$$//; \
|
-e 's/$$/aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ/' \
|
||||||
s/[/.]/_/g; \
|
-e ':1' \
|
||||||
s/^/--redefine-sym _binary_/; \
|
-e 's/\(=[^_]*\)_\([a-z]\)\([^ ]* .*\2\)\(.\)/\1\4\3\4/' \
|
||||||
s/\([^=]*\)\(=[^ ]*\)/& \1_pre_end\2End/; \
|
-e 't1' \
|
||||||
s/\([^=]*\)\(=[^ ]*\)/& \1_pre_start\2Start/; \
|
-e 's/.\{53\}$$//' \
|
||||||
s/[^ ]*\([^=]*\)=[^ ]*/-N\1_pre_size/'` \
|
-e 's/[/.]/_/g' \
|
||||||
|
-e 's/^/--redefine-sym _binary_/' \
|
||||||
|
-e 's/\([^=]*\)\(=[^ ]*\)/& \1_pre_end\2End/' \
|
||||||
|
-e 's/\([^=]*\)\(=[^ ]*\)/& \1_pre_start\2Start/' \
|
||||||
|
-e 's/[^ ]*\([^=]*\)=[^ ]*/-N\1_pre_size/'` \
|
||||||
"$@.pre" "$@"
|
"$@.pre" "$@"
|
||||||
|
|
||||||
.wav.o:
|
.wav.o:
|
||||||
@$(ECHO) objcopy "$<" "$@"
|
@$(ECHO) objcopy "$<" "$@"
|
||||||
@objcopy \
|
@objcopy \
|
||||||
-I binary `echo "$(host_cpu)" | \
|
-I binary `echo "$(host_cpu)" | \
|
||||||
grep -q '^i[0-9]86$$' && \
|
grep -q '^i[0-9]86$$' && \
|
||||||
echo ' -O elf32-i386 -B i386' || \
|
echo ' -O elf32-i386 -B i386' || \
|
||||||
echo ' -O elf64-x86-64 -B i386:x86-64'` \
|
echo ' -O elf64-x86-64 -B i386:x86-64'` \
|
||||||
`echo "$<" | sed -e ' \
|
`echo "$<" | sed \
|
||||||
s/\(.*\/\)\([^.]*\)\([.].*\)/\1\2\3=\2 /; \
|
-e 's/\(.*\/\)\([^.]*\)\([.].*\)/\1\2\3=\2 /' \
|
||||||
t0; s/\([^.]*\)\([.].*\)/\1\2=\1 /; t0; s/.*/&=& /;:0; \
|
-e 't0' \
|
||||||
s/$$/aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ/; \
|
-e 's/\([^.]*\)\([.].*\)/\1\2=\1 /' \
|
||||||
:1; \
|
-e 't0' \
|
||||||
s/\(=[^_]*\)_\([a-z]\)\([^ ]* .*\2\)\(.\)/\1\4\3\4/; \
|
-e 's/.*/&=& /' \
|
||||||
t1; \
|
-e ':0' \
|
||||||
s/.\{53\}$$//; \
|
-e 's/$$/aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ/' \
|
||||||
s/[/.]/_/g; \
|
-e ':1' \
|
||||||
s/^/--redefine-sym _binary_/; \
|
-e 's/\(=[^_]*\)_\([a-z]\)\([^ ]* .*\2\)\(.\)/\1\4\3\4/' \
|
||||||
s/\([^=]*\)\(=[^ ]*\)/& \1_end\2End/; \
|
-e 't1' \
|
||||||
s/\([^=]*\)\(=[^ ]*\)/& \1_start\2Start/; \
|
-e 's/.\{53\}$$//' \
|
||||||
s/[^ ]*\([^=]*\)=[^ ]*/-N\1_size/'` \
|
-e 's/[/.]/_/g' \
|
||||||
|
-e 's/^/--redefine-sym _binary_/' \
|
||||||
|
-e 's/\([^=]*\)\(=[^ ]*\)/& \1_end\2End/' \
|
||||||
|
-e 's/\([^=]*\)\(=[^ ]*\)/& \1_start\2Start/' \
|
||||||
|
-e 's/[^ ]*\([^=]*\)=[^ ]*/-N\1_size/'` \
|
||||||
"$<" "$@"
|
"$<" "$@"
|
||||||
|
|
||||||
|
|
216
Makefile.in
216
Makefile.in
|
@ -287,7 +287,7 @@ libhttp_la_SOURCES = libhttp/hashmap.c \
|
||||||
libhttp/libhttp.sym
|
libhttp/libhttp.sym
|
||||||
|
|
||||||
libhttp_la_LDFLAGS = -export-symbols $(top_srcdir)/libhttp/libhttp.sym \
|
libhttp_la_LDFLAGS = -export-symbols $(top_srcdir)/libhttp/libhttp.sym \
|
||||||
-version 1:0:0 -ldl
|
-version 1:0:0
|
||||||
|
|
||||||
shellinaboxd_SOURCES = shellinabox/shellinaboxd.c \
|
shellinaboxd_SOURCES = shellinabox/shellinaboxd.c \
|
||||||
shellinabox/externalfile.c \
|
shellinabox/externalfile.c \
|
||||||
|
@ -311,7 +311,7 @@ shellinaboxd_SOURCES = shellinabox/shellinaboxd.c \
|
||||||
shellinaboxd_LDADD = liblogging.la \
|
shellinaboxd_LDADD = liblogging.la \
|
||||||
libhttp.la
|
libhttp.la
|
||||||
|
|
||||||
shellinaboxd_LDFLAGS = -static -ldl
|
shellinaboxd_LDFLAGS = -static
|
||||||
all: all-am
|
all: all-am
|
||||||
|
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
|
@ -968,15 +968,18 @@ libtool: $(LIBTOOL_DEPS)
|
||||||
$(SHELL) ./config.status --recheck
|
$(SHELL) ./config.status --recheck
|
||||||
|
|
||||||
shellinaboxd.1: shellinabox/shellinaboxd.man.in
|
shellinaboxd.1: shellinabox/shellinaboxd.man.in
|
||||||
@echo preprocess "$<" '>'"$@"
|
@src="${top_srcdir}/shellinabox/shellinaboxd.man.in"; \
|
||||||
@if echo " $(DEFS)" | grep HAVE_OPENSSL_BIO_H | \
|
echo preprocess "$$src" '>'"$@"; \
|
||||||
grep HAVE_OPENSSL_ERR_H | \
|
if echo " $(DEFS)" | grep HAVE_OPENSSL_BIO_H | \
|
||||||
grep -q HAVE_OPENSSL_SSL_H; then \
|
grep HAVE_OPENSSL_ERR_H | \
|
||||||
sed -e '/^#ifdef *HAVE_OPENSSL$$/d;/^#endif$$/d' "$<" >"$@"; \
|
grep -q HAVE_OPENSSL_SSL_H; then \
|
||||||
else \
|
sed -e '/^#ifdef *HAVE_OPENSSL$$/d' \
|
||||||
sed -e '/^#ifdef *HAVE_OPENSSL$$/,/^#endif$$/d' "$<" >"$@"; \
|
-e '/^#endif$$/d' "$$src" >"$@"; \
|
||||||
fi
|
else \
|
||||||
@man -Tps "./$@" >`echo "$@"|sed -e 's/\.[^.]*$$/.ps/'` || true
|
sed -e '/^#ifdef *HAVE_OPENSSL$$/,/^#endif$$/d' "$$src" >"$@"; \
|
||||||
|
fi
|
||||||
|
@man -Tps "./$@" >`echo "$@" 2>/dev/null|sed -e 's/\.[^.]*$$/.ps/'` \
|
||||||
|
|| true
|
||||||
|
|
||||||
clean-local:
|
clean-local:
|
||||||
-rm -rf shellinaboxd.1 \
|
-rm -rf shellinaboxd.1 \
|
||||||
|
@ -990,115 +993,136 @@ clean-local:
|
||||||
@$(ECHO) objcopy "$<" "$@"
|
@$(ECHO) objcopy "$<" "$@"
|
||||||
@objcopy \
|
@objcopy \
|
||||||
-I binary `echo "$(host_cpu)" | \
|
-I binary `echo "$(host_cpu)" | \
|
||||||
grep -q '^i[0-9]86$$' && \
|
grep -q '^i[0-9]86$$' && \
|
||||||
echo ' -O elf32-i386 -B i386' || \
|
echo ' -O elf32-i386 -B i386' || \
|
||||||
echo ' -O elf64-x86-64 -B i386:x86-64'` \
|
echo ' -O elf64-x86-64 -B i386:x86-64'` \
|
||||||
`echo "$<" | sed -e ' \
|
`echo "$<" | sed \
|
||||||
s/\(.*\/\)\([^.]*\)\([.].*\)/\1\2\3=\2 /; \
|
-e 's/\(.*\/\)\([^.]*\)\([.].*\)/\1\2\3=\2 /' \
|
||||||
t0; s/\([^.]*\)\([.].*\)/\1\2=\1 /; t0; s/.*/&=& /;:0; \
|
-e 't0' \
|
||||||
s/$$/aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ/; \
|
-e 's/\([^.]*\)\([.].*\)/\1\2=\1 /' \
|
||||||
:1; \
|
-e 't0' \
|
||||||
s/\(=[^_]*\)_\([a-z]\)\([^ ]* .*\2\)\(.\)/\1\4\3\4/; \
|
-e 's/.*/&=& /' \
|
||||||
t1; \
|
-e ':0' \
|
||||||
s/.\{53\}$$//; \
|
-e 's/$$/aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ/' \
|
||||||
s/[/.]/_/g; \
|
-e ':1' \
|
||||||
s/^/--redefine-sym _binary_/; \
|
-e 's/\(=[^_]*\)_\([a-z]\)\([^ ]* .*\2\)\(.\)/\1\4\3\4/' \
|
||||||
s/\([^=]*\)\(=[^ ]*\)/& \1_end\2End/; \
|
-e 't1' \
|
||||||
s/\([^=]*\)\(=[^ ]*\)/& \1_start\2Start/; \
|
-e 's/.\{53\}$$//' \
|
||||||
s/[^ ]*\([^=]*\)=[^ ]*/-N\1_size/'` \
|
-e 's/[/.]/_/g' \
|
||||||
|
-e 's/^/--redefine-sym _binary_/' \
|
||||||
|
-e 's/\([^=]*\)\(=[^ ]*\)/& \1_end\2End/' \
|
||||||
|
-e 's/\([^=]*\)\(=[^ ]*\)/& \1_start\2Start/' \
|
||||||
|
-e 's/[^ ]*\([^=]*\)=[^ ]*/-N\1_size/'` \
|
||||||
"$<" "$@"
|
"$<" "$@"
|
||||||
|
|
||||||
.html.o:
|
.html.o:
|
||||||
@$(ECHO) objcopy "$<" "$@"
|
@$(ECHO) objcopy "$<" "$@"
|
||||||
@objcopy \
|
@objcopy \
|
||||||
-I binary `echo "$(host_cpu)" | \
|
-I binary `echo "$(host_cpu)" | \
|
||||||
grep -q '^i[0-9]86$$' && \
|
grep -q '^i[0-9]86$$' && \
|
||||||
echo ' -O elf32-i386 -B i386' || \
|
echo ' -O elf32-i386 -B i386' || \
|
||||||
echo ' -O elf64-x86-64 -B i386:x86-64'` \
|
echo ' -O elf64-x86-64 -B i386:x86-64'` \
|
||||||
`echo "$<" | sed -e ' \
|
`echo "$<" | sed \
|
||||||
s/\(.*\/\)\([^.]*\)\([.].*\)/\1\2\3=\2 /; \
|
-e 's/\(.*\/\)\([^.]*\)\([.].*\)/\1\2\3=\2 /' \
|
||||||
t0; s/\([^.]*\)\([.].*\)/\1\2=\1 /; t0; s/.*/&=& /;:0; \
|
-e 't0' \
|
||||||
s/$$/aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ/; \
|
-e 's/\([^.]*\)\([.].*\)/\1\2=\1 /' \
|
||||||
:1; \
|
-e 't0' \
|
||||||
s/\(=[^_]*\)_\([a-z]\)\([^ ]* .*\2\)\(.\)/\1\4\3\4/; \
|
-e 's/.*/&=& /' \
|
||||||
t1; \
|
-e ':0' \
|
||||||
s/.\{53\}$$//; \
|
-e 's/$$/aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ/' \
|
||||||
s/[/.]/_/g; \
|
-e ':1' \
|
||||||
s/^/--redefine-sym _binary_/; \
|
-e 's/\(=[^_]*\)_\([a-z]\)\([^ ]* .*\2\)\(.\)/\1\4\3\4/' \
|
||||||
s/\([^=]*\)\(=[^ ]*\)/& \1_end\2End/; \
|
-e 't1' \
|
||||||
s/\([^=]*\)\(=[^ ]*\)/& \1_start\2Start/; \
|
-e 's/.\{53\}$$//' \
|
||||||
s/[^ ]*\([^=]*\)=[^ ]*/-N\1_size/'` \
|
-e 's/[/.]/_/g' \
|
||||||
|
-e 's/^/--redefine-sym _binary_/' \
|
||||||
|
-e 's/\([^=]*\)\(=[^ ]*\)/& \1_end\2End/' \
|
||||||
|
-e 's/\([^=]*\)\(=[^ ]*\)/& \1_start\2Start/' \
|
||||||
|
-e 's/[^ ]*\([^=]*\)=[^ ]*/-N\1_size/'` \
|
||||||
"$<" "$@"
|
"$<" "$@"
|
||||||
|
|
||||||
.ico.o:
|
.ico.o:
|
||||||
@$(ECHO) objcopy "$<" "$@"
|
@$(ECHO) objcopy "$<" "$@"
|
||||||
@objcopy \
|
@objcopy \
|
||||||
-I binary `echo "$(host_cpu)" | \
|
-I binary `echo "$(host_cpu)" | \
|
||||||
grep -q '^i[0-9]86$$' && \
|
grep -q '^i[0-9]86$$' && \
|
||||||
echo ' -O elf32-i386 -B i386' || \
|
echo ' -O elf32-i386 -B i386' || \
|
||||||
echo ' -O elf64-x86-64 -B i386:x86-64'` \
|
echo ' -O elf64-x86-64 -B i386:x86-64'` \
|
||||||
`echo "$<" | sed -e ' \
|
`echo "$<" | sed \
|
||||||
s/\(.*\/\)\([^.]*\)\([.].*\)/\1\2\3=\2 /; \
|
-e 's/\(.*\/\)\([^.]*\)\([.].*\)/\1\2\3=\2 /' \
|
||||||
t0; s/\([^.]*\)\([.].*\)/\1\2=\1 /; t0; s/.*/&=& /;:0; \
|
-e 't0' \
|
||||||
s/$$/aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ/; \
|
-e 's/\([^.]*\)\([.].*\)/\1\2=\1 /' \
|
||||||
:1; \
|
-e 't0' \
|
||||||
s/\(=[^_]*\)_\([a-z]\)\([^ ]* .*\2\)\(.\)/\1\4\3\4/; \
|
-e 's/.*/&=& /' \
|
||||||
t1; \
|
-e ':0' \
|
||||||
s/.\{53\}$$//; \
|
-e 's/$$/aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ/' \
|
||||||
s/[/.]/_/g; \
|
-e ':1' \
|
||||||
s/^/--redefine-sym _binary_/; \
|
-e 's/\(=[^_]*\)_\([a-z]\)\([^ ]* .*\2\)\(.\)/\1\4\3\4/' \
|
||||||
s/\([^=]*\)\(=[^ ]*\)/& \1_end\2End/; \
|
-e 't1' \
|
||||||
s/\([^=]*\)\(=[^ ]*\)/& \1_start\2Start/; \
|
-e 's/.\{53\}$$//' \
|
||||||
s/[^ ]*\([^=]*\)=[^ ]*/-N\1_size/'` \
|
-e 's/[/.]/_/g' \
|
||||||
|
-e 's/^/--redefine-sym _binary_/' \
|
||||||
|
-e 's/\([^=]*\)\(=[^ ]*\)/& \1_end\2End/' \
|
||||||
|
-e 's/\([^=]*\)\(=[^ ]*\)/& \1_start\2Start/' \
|
||||||
|
-e 's/[^ ]*\([^=]*\)=[^ ]*/-N\1_size/'` \
|
||||||
"$<" "$@"
|
"$<" "$@"
|
||||||
|
|
||||||
.js.o:
|
.js.o:
|
||||||
@$(ECHO) preprocess "$<" \| objcopy "$@"
|
@$(ECHO) preprocess "$<" \| objcopy "$@"
|
||||||
@trap 'rm -f "$@.pre"' EXIT INT TERM QUIT; \
|
@trap 'rm -f "$@.pre"' EXIT INT TERM QUIT; \
|
||||||
sed -e "`sed -e 's/^#define *\([^ ]*\) *\(.*\)/\/^[^#]\/s\/\1\/\2 \\\\\/* \1 *\\\\\/\/g/; \
|
sed -e "`sed -e 's/^#define *\([^ ]*\) *\(.*\)/\/^[^#]\/s\/\1\/\2 \\\\\/* \1 *\\\\\/\/g/' \
|
||||||
t;d' "$<"` \
|
-e t \
|
||||||
;s/^#/\/\/ #/ \
|
-e d "$<"`" \
|
||||||
;s/VERSION/\"@VERSION@\"/g" "$<" >"$@.pre" && \
|
-e "s/^#/\/\/ #/" \
|
||||||
objcopy \
|
-e "s/VERSION/\"@VERSION@\"/g" "$<" >"$@.pre" && \
|
||||||
|
\
|
||||||
-I binary `echo $(host_cpu) | \
|
-I binary `echo $(host_cpu) | \
|
||||||
grep -q '^i[0-9]86$$' && \
|
grep -q '^i[0-9]86$$' && \
|
||||||
echo ' -O elf32-i386 -B i386' || \
|
echo ' -O elf32-i386 -B i386' || \
|
||||||
echo ' -O elf64-x86-64 -B i386:x86-64'` \
|
echo ' -O elf64-x86-64 -B i386:x86-64'` \
|
||||||
`echo "$@" | sed -e ' \
|
`echo "$@" | sed \
|
||||||
s/\(.*\/\)\([^.]*\)\([.].*\)/\1\2\3=\2 /; \
|
-e 's/\(.*\/\)\([^.]*\)\([.].*\)/\1\2\3=\2 /' \
|
||||||
t0; s/\([^.]*\)\([.].*\)/\1\2=\1 /; t0; s/.*/&=& /;:0; \
|
-e 't0' \
|
||||||
s/$$/aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ/; \
|
-e 's/\([^.]*\)\([.].*\)/\1\2=\1 /' \
|
||||||
:1; \
|
-e 't0' \
|
||||||
s/\(=[^_]*\)_\([a-z]\)\([^ ]* .*\2\)\(.\)/\1\4\3\4/; \
|
-e 's/.*/&=& /' \
|
||||||
t1; \
|
-e ':0' \
|
||||||
s/.\{53\}$$//; \
|
-e 's/$$/aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ/' \
|
||||||
s/[/.]/_/g; \
|
-e ':1' \
|
||||||
s/^/--redefine-sym _binary_/; \
|
-e 's/\(=[^_]*\)_\([a-z]\)\([^ ]* .*\2\)\(.\)/\1\4\3\4/' \
|
||||||
s/\([^=]*\)\(=[^ ]*\)/& \1_pre_end\2End/; \
|
-e 't1' \
|
||||||
s/\([^=]*\)\(=[^ ]*\)/& \1_pre_start\2Start/; \
|
-e 's/.\{53\}$$//' \
|
||||||
s/[^ ]*\([^=]*\)=[^ ]*/-N\1_pre_size/'` \
|
-e 's/[/.]/_/g' \
|
||||||
|
-e 's/^/--redefine-sym _binary_/' \
|
||||||
|
-e 's/\([^=]*\)\(=[^ ]*\)/& \1_pre_end\2End/' \
|
||||||
|
-e 's/\([^=]*\)\(=[^ ]*\)/& \1_pre_start\2Start/' \
|
||||||
|
-e 's/[^ ]*\([^=]*\)=[^ ]*/-N\1_pre_size/'` \
|
||||||
"$@.pre" "$@"
|
"$@.pre" "$@"
|
||||||
|
|
||||||
.wav.o:
|
.wav.o:
|
||||||
@$(ECHO) objcopy "$<" "$@"
|
@$(ECHO) objcopy "$<" "$@"
|
||||||
@objcopy \
|
@objcopy \
|
||||||
-I binary `echo "$(host_cpu)" | \
|
-I binary `echo "$(host_cpu)" | \
|
||||||
grep -q '^i[0-9]86$$' && \
|
grep -q '^i[0-9]86$$' && \
|
||||||
echo ' -O elf32-i386 -B i386' || \
|
echo ' -O elf32-i386 -B i386' || \
|
||||||
echo ' -O elf64-x86-64 -B i386:x86-64'` \
|
echo ' -O elf64-x86-64 -B i386:x86-64'` \
|
||||||
`echo "$<" | sed -e ' \
|
`echo "$<" | sed \
|
||||||
s/\(.*\/\)\([^.]*\)\([.].*\)/\1\2\3=\2 /; \
|
-e 's/\(.*\/\)\([^.]*\)\([.].*\)/\1\2\3=\2 /' \
|
||||||
t0; s/\([^.]*\)\([.].*\)/\1\2=\1 /; t0; s/.*/&=& /;:0; \
|
-e 't0' \
|
||||||
s/$$/aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ/; \
|
-e 's/\([^.]*\)\([.].*\)/\1\2=\1 /' \
|
||||||
:1; \
|
-e 't0' \
|
||||||
s/\(=[^_]*\)_\([a-z]\)\([^ ]* .*\2\)\(.\)/\1\4\3\4/; \
|
-e 's/.*/&=& /' \
|
||||||
t1; \
|
-e ':0' \
|
||||||
s/.\{53\}$$//; \
|
-e 's/$$/aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ/' \
|
||||||
s/[/.]/_/g; \
|
-e ':1' \
|
||||||
s/^/--redefine-sym _binary_/; \
|
-e 's/\(=[^_]*\)_\([a-z]\)\([^ ]* .*\2\)\(.\)/\1\4\3\4/' \
|
||||||
s/\([^=]*\)\(=[^ ]*\)/& \1_end\2End/; \
|
-e 't1' \
|
||||||
s/\([^=]*\)\(=[^ ]*\)/& \1_start\2Start/; \
|
-e 's/.\{53\}$$//' \
|
||||||
s/[^ ]*\([^=]*\)=[^ ]*/-N\1_size/'` \
|
-e 's/[/.]/_/g' \
|
||||||
|
-e 's/^/--redefine-sym _binary_/' \
|
||||||
|
-e 's/\([^=]*\)\(=[^ ]*\)/& \1_end\2End/' \
|
||||||
|
-e 's/\([^=]*\)\(=[^ ]*\)/& \1_start\2Start/' \
|
||||||
|
-e 's/[^ ]*\([^=]*\)=[^ ]*/-N\1_size/'` \
|
||||||
"$<" "$@"
|
"$<" "$@"
|
||||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
|
|
213
configure
vendored
213
configure
vendored
|
@ -20142,6 +20142,219 @@ fi
|
||||||
|
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
||||||
|
for ac_func in dlopen
|
||||||
|
do
|
||||||
|
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
|
||||||
|
{ echo "$as_me:$LINENO: checking for $ac_func" >&5
|
||||||
|
echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
|
||||||
|
if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
|
||||||
|
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||||
|
else
|
||||||
|
cat >conftest.$ac_ext <<_ACEOF
|
||||||
|
/* confdefs.h. */
|
||||||
|
_ACEOF
|
||||||
|
cat confdefs.h >>conftest.$ac_ext
|
||||||
|
cat >>conftest.$ac_ext <<_ACEOF
|
||||||
|
/* end confdefs.h. */
|
||||||
|
/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
|
||||||
|
For example, HP-UX 11i <limits.h> declares gettimeofday. */
|
||||||
|
#define $ac_func innocuous_$ac_func
|
||||||
|
|
||||||
|
/* System header to define __stub macros and hopefully few prototypes,
|
||||||
|
which can conflict with char $ac_func (); below.
|
||||||
|
Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
|
||||||
|
<limits.h> exists even on freestanding compilers. */
|
||||||
|
|
||||||
|
#ifdef __STDC__
|
||||||
|
# include <limits.h>
|
||||||
|
#else
|
||||||
|
# include <assert.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#undef $ac_func
|
||||||
|
|
||||||
|
/* Override any GCC internal prototype to avoid an error.
|
||||||
|
Use char because int might match the return type of a GCC
|
||||||
|
builtin and then its argument prototype would still apply. */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C"
|
||||||
|
#endif
|
||||||
|
char $ac_func ();
|
||||||
|
/* The GNU C library defines this for functions which it implements
|
||||||
|
to always fail with ENOSYS. Some functions are actually named
|
||||||
|
something starting with __ and the normal name is an alias. */
|
||||||
|
#if defined __stub_$ac_func || defined __stub___$ac_func
|
||||||
|
choke me
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
return $ac_func ();
|
||||||
|
;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
_ACEOF
|
||||||
|
rm -f conftest.$ac_objext conftest$ac_exeext
|
||||||
|
if { (ac_try="$ac_link"
|
||||||
|
case "(($ac_try" in
|
||||||
|
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
||||||
|
*) ac_try_echo=$ac_try;;
|
||||||
|
esac
|
||||||
|
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
|
||||||
|
(eval "$ac_link") 2>conftest.er1
|
||||||
|
ac_status=$?
|
||||||
|
grep -v '^ *+' conftest.er1 >conftest.err
|
||||||
|
rm -f conftest.er1
|
||||||
|
cat conftest.err >&5
|
||||||
|
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||||
|
(exit $ac_status); } && {
|
||||||
|
test -z "$ac_c_werror_flag" ||
|
||||||
|
test ! -s conftest.err
|
||||||
|
} && test -s conftest$ac_exeext &&
|
||||||
|
$as_test_x conftest$ac_exeext; then
|
||||||
|
eval "$as_ac_var=yes"
|
||||||
|
else
|
||||||
|
echo "$as_me: failed program was:" >&5
|
||||||
|
sed 's/^/| /' conftest.$ac_ext >&5
|
||||||
|
|
||||||
|
eval "$as_ac_var=no"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
|
||||||
|
conftest$ac_exeext conftest.$ac_ext
|
||||||
|
fi
|
||||||
|
ac_res=`eval echo '${'$as_ac_var'}'`
|
||||||
|
{ echo "$as_me:$LINENO: result: $ac_res" >&5
|
||||||
|
echo "${ECHO_T}$ac_res" >&6; }
|
||||||
|
if test `eval echo '${'$as_ac_var'}'` = yes; then
|
||||||
|
cat >>confdefs.h <<_ACEOF
|
||||||
|
#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
|
||||||
|
_ACEOF
|
||||||
|
|
||||||
|
else
|
||||||
|
{ echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
|
||||||
|
echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
|
||||||
|
if test "${ac_cv_lib_dl_dlopen+set}" = set; then
|
||||||
|
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||||
|
else
|
||||||
|
ac_check_lib_save_LIBS=$LIBS
|
||||||
|
LIBS="-ldl $LIBS"
|
||||||
|
cat >conftest.$ac_ext <<_ACEOF
|
||||||
|
/* confdefs.h. */
|
||||||
|
_ACEOF
|
||||||
|
cat confdefs.h >>conftest.$ac_ext
|
||||||
|
cat >>conftest.$ac_ext <<_ACEOF
|
||||||
|
/* end confdefs.h. */
|
||||||
|
|
||||||
|
/* Override any GCC internal prototype to avoid an error.
|
||||||
|
Use char because int might match the return type of a GCC
|
||||||
|
builtin and then its argument prototype would still apply. */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C"
|
||||||
|
#endif
|
||||||
|
char dlopen ();
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
return dlopen ();
|
||||||
|
;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
_ACEOF
|
||||||
|
rm -f conftest.$ac_objext conftest$ac_exeext
|
||||||
|
if { (ac_try="$ac_link"
|
||||||
|
case "(($ac_try" in
|
||||||
|
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
||||||
|
*) ac_try_echo=$ac_try;;
|
||||||
|
esac
|
||||||
|
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
|
||||||
|
(eval "$ac_link") 2>conftest.er1
|
||||||
|
ac_status=$?
|
||||||
|
grep -v '^ *+' conftest.er1 >conftest.err
|
||||||
|
rm -f conftest.er1
|
||||||
|
cat conftest.err >&5
|
||||||
|
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||||
|
(exit $ac_status); } && {
|
||||||
|
test -z "$ac_c_werror_flag" ||
|
||||||
|
test ! -s conftest.err
|
||||||
|
} && test -s conftest$ac_exeext &&
|
||||||
|
$as_test_x conftest$ac_exeext; then
|
||||||
|
ac_cv_lib_dl_dlopen=yes
|
||||||
|
else
|
||||||
|
echo "$as_me: failed program was:" >&5
|
||||||
|
sed 's/^/| /' conftest.$ac_ext >&5
|
||||||
|
|
||||||
|
ac_cv_lib_dl_dlopen=no
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
|
||||||
|
conftest$ac_exeext conftest.$ac_ext
|
||||||
|
LIBS=$ac_check_lib_save_LIBS
|
||||||
|
fi
|
||||||
|
{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
|
||||||
|
echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
|
||||||
|
if test $ac_cv_lib_dl_dlopen = yes; then
|
||||||
|
LIBS="-ldl $LIBS"
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
cat >conftest.$ac_ext <<_ACEOF
|
||||||
|
/* confdefs.h. */
|
||||||
|
_ACEOF
|
||||||
|
cat confdefs.h >>conftest.$ac_ext
|
||||||
|
cat >>conftest.$ac_ext <<_ACEOF
|
||||||
|
/* end confdefs.h. */
|
||||||
|
#ifndef _XOPEN_SOURCE
|
||||||
|
#define _XOPEN_SOURCE
|
||||||
|
#endif
|
||||||
|
#ifndef _GNU_SOURCE
|
||||||
|
#define _GNU_SOURCE
|
||||||
|
#endif
|
||||||
|
#include <stdlib.h>
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
ptsname_r(0, 0, 0);
|
||||||
|
;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
_ACEOF
|
||||||
|
rm -f conftest.$ac_objext conftest$ac_exeext
|
||||||
|
if { (ac_try="$ac_link"
|
||||||
|
case "(($ac_try" in
|
||||||
|
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
||||||
|
*) ac_try_echo=$ac_try;;
|
||||||
|
esac
|
||||||
|
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
|
||||||
|
(eval "$ac_link") 2>conftest.er1
|
||||||
|
ac_status=$?
|
||||||
|
grep -v '^ *+' conftest.er1 >conftest.err
|
||||||
|
rm -f conftest.er1
|
||||||
|
cat conftest.err >&5
|
||||||
|
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||||
|
(exit $ac_status); } && {
|
||||||
|
test -z "$ac_c_werror_flag" ||
|
||||||
|
test ! -s conftest.err
|
||||||
|
} && test -s conftest$ac_exeext &&
|
||||||
|
$as_test_x conftest$ac_exeext; then
|
||||||
|
|
||||||
|
cat >>confdefs.h <<\_ACEOF
|
||||||
|
#define HAVE_PTSNAME_R 1
|
||||||
|
_ACEOF
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "$as_me: failed program was:" >&5
|
||||||
|
sed 's/^/| /' conftest.$ac_ext >&5
|
||||||
|
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
|
||||||
|
conftest$ac_exeext conftest.$ac_ext
|
||||||
ac_config_files="$ac_config_files Makefile"
|
ac_config_files="$ac_config_files Makefile"
|
||||||
|
|
||||||
cat >confcache <<\_ACEOF
|
cat >confcache <<\_ACEOF
|
||||||
|
|
12
configure.ac
12
configure.ac
|
@ -10,5 +10,17 @@ AC_PROG_GCC_TRADITIONAL
|
||||||
AC_CHECK_HEADERS([openssl/bio.h openssl/err.h openssl/ssl.h pthread.h \
|
AC_CHECK_HEADERS([openssl/bio.h openssl/err.h openssl/ssl.h pthread.h \
|
||||||
security/pam_appl.h security/pam_misc.h sys/prctrl.h \
|
security/pam_appl.h security/pam_misc.h sys/prctrl.h \
|
||||||
utmpx.h])
|
utmpx.h])
|
||||||
|
AC_CHECK_FUNCS(dlopen, [],
|
||||||
|
[AC_CHECK_LIB(dl, dlopen, LIBS="-ldl $LIBS")])
|
||||||
|
AC_TRY_LINK([#ifndef _XOPEN_SOURCE
|
||||||
|
#define _XOPEN_SOURCE
|
||||||
|
#endif
|
||||||
|
#ifndef _GNU_SOURCE
|
||||||
|
#define _GNU_SOURCE
|
||||||
|
#endif
|
||||||
|
#include <stdlib.h>],
|
||||||
|
[ptsname_r(0, 0, 0);],
|
||||||
|
[AC_DEFINE(HAVE_PTSNAME_R, 1,
|
||||||
|
Define to 1 if you have a re-entrant version of ptsname)])
|
||||||
AC_CONFIG_FILES([Makefile])
|
AC_CONFIG_FILES([Makefile])
|
||||||
AC_OUTPUT
|
AC_OUTPUT
|
||||||
|
|
|
@ -366,11 +366,35 @@ void closeAllFds(int *exceptFds, int num) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef HAVE_PTSNAME_R
|
||||||
|
static int ptsname_r(int fd, char *buf, size_t buflen) {
|
||||||
|
// It is unfortunate that ptsname_r is not universally available.
|
||||||
|
// For the time being, this is not a big problem, as ShellInABox is
|
||||||
|
// single-threaded (and so is the launcher process). But if this
|
||||||
|
// code gets re-used in a multi-threaded application, that could
|
||||||
|
// lead to problems.
|
||||||
|
if (buf == NULL) {
|
||||||
|
errno = EINVAL;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
char *p = ptsname(fd);
|
||||||
|
if (p == NULL) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if (buflen < strlen(p) + 1) {
|
||||||
|
errno = ERANGE;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
strcpy(buf, p);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static int forkPty(int *pty, int useLogin, struct Utmp **utmp,
|
static int forkPty(int *pty, int useLogin, struct Utmp **utmp,
|
||||||
const char *peerName) {
|
const char *peerName) {
|
||||||
int slave;
|
int slave;
|
||||||
char ptyPath[PATH_MAX];
|
char ptyPath[PATH_MAX];
|
||||||
if ((*pty = getpt()) < 0 ||
|
if ((*pty = posix_openpt(O_RDWR|O_NOCTTY)) < 0 ||
|
||||||
grantpt(*pty) < 0 ||
|
grantpt(*pty) < 0 ||
|
||||||
unlockpt(*pty) < 0 ||
|
unlockpt(*pty) < 0 ||
|
||||||
ptsname_r(*pty, ptyPath, sizeof(ptyPath)) < 0 ||
|
ptsname_r(*pty, ptyPath, sizeof(ptyPath)) < 0 ||
|
||||||
|
@ -438,7 +462,9 @@ static const struct passwd *getPWEnt(uid_t uid) {
|
||||||
struct passwd pwbuf, *pw;
|
struct passwd pwbuf, *pw;
|
||||||
char *buf;
|
char *buf;
|
||||||
int len = sysconf(_SC_GETPW_R_SIZE_MAX);
|
int len = sysconf(_SC_GETPW_R_SIZE_MAX);
|
||||||
check(len > 0);
|
if (len <= 0) {
|
||||||
|
len = 4096;
|
||||||
|
}
|
||||||
check(buf = malloc(len));
|
check(buf = malloc(len));
|
||||||
check(!getpwuid_r(uid, &pwbuf, buf, len, &pw) && pw);
|
check(!getpwuid_r(uid, &pwbuf, buf, len, &pw) && pw);
|
||||||
struct passwd *passwd;
|
struct passwd *passwd;
|
||||||
|
|
|
@ -156,7 +156,9 @@ const char *getUserName(uid_t uid) {
|
||||||
struct passwd pwbuf, *pw;
|
struct passwd pwbuf, *pw;
|
||||||
char *buf;
|
char *buf;
|
||||||
int len = sysconf(_SC_GETPW_R_SIZE_MAX);
|
int len = sysconf(_SC_GETPW_R_SIZE_MAX);
|
||||||
check(len > 0);
|
if (len <= 0) {
|
||||||
|
len = 4096;
|
||||||
|
}
|
||||||
check(buf = malloc(len));
|
check(buf = malloc(len));
|
||||||
char *user;
|
char *user;
|
||||||
if (getpwuid_r(uid, &pwbuf, buf, len, &pw) || !pw) {
|
if (getpwuid_r(uid, &pwbuf, buf, len, &pw) || !pw) {
|
||||||
|
@ -172,13 +174,15 @@ const char *getUserName(uid_t uid) {
|
||||||
uid_t getUserId(const char *name) {
|
uid_t getUserId(const char *name) {
|
||||||
struct passwd pwbuf, *pw;
|
struct passwd pwbuf, *pw;
|
||||||
char *buf;
|
char *buf;
|
||||||
int len = sysconf(_SC_GETPW_R_SIZE_MAX);
|
int len = sysconf(_SC_GETPW_R_SIZE_MAX);
|
||||||
check(len > 0);
|
if (len <= 0) {
|
||||||
check(buf = malloc(len));
|
len = 4096;
|
||||||
|
}
|
||||||
|
check(buf = malloc(len));
|
||||||
if (getpwnam_r(name, &pwbuf, buf, len, &pw) || !pw) {
|
if (getpwnam_r(name, &pwbuf, buf, len, &pw) || !pw) {
|
||||||
fatal("Cannot look up user id \"%s\"", name);
|
fatal("Cannot look up user id \"%s\"", name);
|
||||||
}
|
}
|
||||||
uid_t uid = pw->pw_uid;
|
uid_t uid = pw->pw_uid;
|
||||||
free(buf);
|
free(buf);
|
||||||
return uid;
|
return uid;
|
||||||
}
|
}
|
||||||
|
@ -204,7 +208,9 @@ const char *getGroupName(gid_t gid) {
|
||||||
struct group grbuf, *gr;
|
struct group grbuf, *gr;
|
||||||
char *buf;
|
char *buf;
|
||||||
int len = sysconf(_SC_GETGR_R_SIZE_MAX);
|
int len = sysconf(_SC_GETGR_R_SIZE_MAX);
|
||||||
check(len > 0);
|
if (len <= 0) {
|
||||||
|
len = 4096;
|
||||||
|
}
|
||||||
check(buf = malloc(len));
|
check(buf = malloc(len));
|
||||||
char *group;
|
char *group;
|
||||||
if (getgrgid_r(gid, &grbuf, buf, len, &gr) || !gr) {
|
if (getgrgid_r(gid, &grbuf, buf, len, &gr) || !gr) {
|
||||||
|
@ -221,7 +227,9 @@ gid_t getGroupId(const char *name) {
|
||||||
struct group grbuf, *gr;
|
struct group grbuf, *gr;
|
||||||
char *buf;
|
char *buf;
|
||||||
int len = sysconf(_SC_GETGR_R_SIZE_MAX);
|
int len = sysconf(_SC_GETGR_R_SIZE_MAX);
|
||||||
check(len > 0);
|
if (len <= 0) {
|
||||||
|
len = 4096;
|
||||||
|
}
|
||||||
check(buf = malloc(len));
|
check(buf = malloc(len));
|
||||||
if (getgrnam_r(name, &grbuf, buf, len, &gr) || !gr) {
|
if (getgrnam_r(name, &grbuf, buf, len, &gr) || !gr) {
|
||||||
fatal("Cannot look up group \"%s\"", name);
|
fatal("Cannot look up group \"%s\"", name);
|
||||||
|
|
Loading…
Reference in a new issue