build: add runuhttpd sdk target
authorJo-Philipp Wich <jow@openwrt.org>
Fri, 16 Apr 2010 13:38:27 +0000 (13:38 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Fri, 16 Apr 2010 13:38:27 +0000 (13:38 +0000)
Makefile
build/luci.cgi [new file with mode: 0755]
contrib/uhttpd/Makefile [new file with mode: 0644]
contrib/uhttpd/patches/001-pass-env.patch [new file with mode: 0644]
contrib/uhttpd/patches/series [new file with mode: 0644]

index 3b46544a4cdf08699155ba969ca44187f451c3bf..ceb80ac249dcd172ff50699fef2888386344ed59 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -61,6 +61,10 @@ ucidefaults:
 runhttpd: hostenv
        build/hostenv.sh $(realpath host) $(LUA_MODULEDIR) $(LUA_LIBRARYDIR) "lua build/lucid.lua"
 
+runuhttpd: hostenv
+       cp $(realpath build)/luci.cgi $(realpath host)/www/cgi-bin/luci
+       build/hostenv.sh $(realpath host) $(LUA_MODULEDIR) $(LUA_LIBRARYDIR) "$(realpath host)/usr/sbin/uhttpd -p 8080 -h $(realpath host)/www -f"
+
 runlua: hostenv
        build/hostenv.sh $(realpath host) $(LUA_MODULEDIR) $(LUA_LIBRARYDIR) "lua -i build/setup.lua"
 
diff --git a/build/luci.cgi b/build/luci.cgi
new file mode 100755 (executable)
index 0000000..f4b5900
--- /dev/null
@@ -0,0 +1,8 @@
+#!/usr/bin/lua
+
+dofile "../../build/setup.lua"
+
+require "luci.cacheloader"
+require "luci.sgi.cgi"
+luci.dispatcher.indexcache = "/tmp/luci-indexcache"
+luci.sgi.cgi.run()
diff --git a/contrib/uhttpd/Makefile b/contrib/uhttpd/Makefile
new file mode 100644 (file)
index 0000000..7b0b37f
--- /dev/null
@@ -0,0 +1,30 @@
+include ../../build/config.mk
+include ../../build/gccconfig.mk
+
+UHTTPD_SRC             = svn://svn.openwrt.org/openwrt/trunk/package/uhttpd/src
+UHTTPD_DIR             = uhttpd-src
+UHTTPD_PATCHDIR = patches
+
+all: compile
+
+include ../../build/module.mk
+
+$(UHTTPD_DIR)/Makefile:
+       svn co $(UHTTPD_SRC) $(UHTTPD_DIR)
+
+$(UHTTPD_DIR)/.prepared: $(UHTTPD_DIR)/Makefile
+       (cd $(UHTTPD_PATCHDIR); ls *.patch | sort > series) || true
+       [ -f "$(UHTTPD_PATCHDIR)/series" ] && while read patch; do \
+               patch -d $(UHTTPD_DIR) -p1 < $(UHTTPD_PATCHDIR)/$$patch; \
+       done < $(UHTTPD_PATCHDIR)/series || true
+       touch $@
+
+compile: $(UHTTPD_DIR)/.prepared
+       (cd $(UHTTPD_DIR); $(MAKE) LUA_SUPPORT=0 TLS_SUPPORT=0 CGI_SUPPORT=1)
+       mkdir -p dist/usr/sbin
+       cp $(UHTTPD_DIR)/uhttpd dist/usr/sbin
+
+compile-all: compile
+
+clean:
+       rm -rf $(UHTTPD_DIR)
diff --git a/contrib/uhttpd/patches/001-pass-env.patch b/contrib/uhttpd/patches/001-pass-env.patch
new file mode 100644 (file)
index 0000000..b69ff17
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/uhttpd-cgi.c
++++ b/uhttpd-cgi.c
+@@ -204,7 +204,7 @@ void uh_cgi_request(struct client *cl, s
+                           (pi->stat.st_mode & S_IXOTH)
+                       ) {
+                               /* build environment */
+-                              clearenv();
++                              //clearenv();
+                               /* common information */
+                               setenv("GATEWAY_INTERFACE", "CGI/1.1", 1);
diff --git a/contrib/uhttpd/patches/series b/contrib/uhttpd/patches/series
new file mode 100644 (file)
index 0000000..dc852df
--- /dev/null
@@ -0,0 +1 @@
+001-pass-env.patch