diff --git a/build/cmake/toolchain/linux.toolchain.cmake b/build/cmake/toolchain/linux.toolchain.cmake index ede5d1e..99793a9 100755 --- a/build/cmake/toolchain/linux.toolchain.cmake +++ b/build/cmake/toolchain/linux.toolchain.cmake @@ -43,6 +43,7 @@ set(LOG_SUPPORT "true") # ------------ build log end ------------ # # ------------ build GoAhead ------------ # set(GOAHEAD_DOCUMENTS_PATH "web") +set(GOAHEAD_UPLOAD_TMP_PATH "./goahead") # GOAHEAD_CONFIG_FILE_PATH should be set when cross compile # set(GOAHEAD_CONFIG_FILE_PATH "./") # ------------ build GoAhead end ------------ # diff --git a/external/goahead-5.2.0/modify/goahead-linux-static-fancy-me.h b/external/goahead-5.2.0/modify/goahead-linux-static-fancy-me.h new file mode 100644 index 0000000..d0b9600 --- /dev/null +++ b/external/goahead-5.2.0/modify/goahead-linux-static-fancy-me.h @@ -0,0 +1,411 @@ +/* + me.h -- MakeMe Configure Header for linux-x86-static + + This header is created by Me during configuration. To change settings, re-run + configure or define variables in your Makefile to override these default values. + */ + +/* Settings */ +#ifndef ME_AUTHOR + #define ME_AUTHOR "Embedthis Software" +#endif +#ifndef ME_CERTS_BITS + #define ME_CERTS_BITS 2048 +#endif +#ifndef ME_CERTS_DAYS + #define ME_CERTS_DAYS 3650 +#endif +#ifndef ME_CERTS_GENDH + #define ME_CERTS_GENDH 1 +#endif +#ifndef ME_COMPANY + #define ME_COMPANY "embedthis" +#endif +#ifndef ME_COMPATIBLE + #define ME_COMPATIBLE "5.2" +#endif +#ifndef ME_COMPILER_FORTIFY + #define ME_COMPILER_FORTIFY 1 +#endif +#ifndef ME_COMPILER_HAS_ATOMIC + #define ME_COMPILER_HAS_ATOMIC 0 +#endif +#ifndef ME_COMPILER_HAS_ATOMIC64 + #define ME_COMPILER_HAS_ATOMIC64 0 +#endif +#ifndef ME_COMPILER_HAS_DOUBLE_BRACES + #define ME_COMPILER_HAS_DOUBLE_BRACES 0 +#endif +#ifndef ME_COMPILER_HAS_DYN_LOAD + #define ME_COMPILER_HAS_DYN_LOAD 1 +#endif +#ifndef ME_COMPILER_HAS_LIB_EDIT + #define ME_COMPILER_HAS_LIB_EDIT 0 +#endif +#ifndef ME_COMPILER_HAS_LIB_RT + #define ME_COMPILER_HAS_LIB_RT 1 +#endif +#ifndef ME_COMPILER_HAS_MMU + #define ME_COMPILER_HAS_MMU 1 +#endif +#ifndef ME_COMPILER_HAS_MTUNE + #define ME_COMPILER_HAS_MTUNE 1 +#endif +#ifndef ME_COMPILER_HAS_PAM + #define ME_COMPILER_HAS_PAM 0 +#endif +#ifndef ME_COMPILER_HAS_STACK_PROTECTOR + #define ME_COMPILER_HAS_STACK_PROTECTOR 1 +#endif +#ifndef ME_COMPILER_HAS_SYNC + #define ME_COMPILER_HAS_SYNC 1 +#endif +#ifndef ME_COMPILER_HAS_SYNC64 + #define ME_COMPILER_HAS_SYNC64 1 +#endif +#ifndef ME_COMPILER_HAS_SYNC_CAS + #define ME_COMPILER_HAS_SYNC_CAS 0 +#endif +#ifndef ME_COMPILER_HAS_UNNAMED_UNIONS + #define ME_COMPILER_HAS_UNNAMED_UNIONS 1 +#endif +#ifndef ME_COMPILER_WARN64TO32 + #define ME_COMPILER_WARN64TO32 0 +#endif +#ifndef ME_COMPILER_WARN_UNUSED + #define ME_COMPILER_WARN_UNUSED 1 +#endif +#ifndef ME_DEBUG + #define ME_DEBUG 1 +#endif +#ifndef ME_DEPRECATED_WARNINGS + #define ME_DEPRECATED_WARNINGS 0 +#endif +#ifndef ME_DEPTH + #define ME_DEPTH 1 +#endif +#ifndef ME_DESCRIPTION + #define ME_DESCRIPTION "Embedthis GoAhead" +#endif +#ifndef ME_GOAHEAD_ACCESS_LOG + #define ME_GOAHEAD_ACCESS_LOG 0 +#endif +#ifndef ME_GOAHEAD_AUTH + #define ME_GOAHEAD_AUTH 1 +#endif +#ifndef ME_GOAHEAD_AUTH_STORE + #define ME_GOAHEAD_AUTH_STORE "file" +#endif +#ifndef ME_GOAHEAD_AUTO_LOGIN + #define ME_GOAHEAD_AUTO_LOGIN 0 +#endif +#ifndef ME_GOAHEAD_CGI + #define ME_GOAHEAD_CGI 1 +#endif +#ifndef ME_GOAHEAD_CGI_VAR_PREFIX + #define ME_GOAHEAD_CGI_VAR_PREFIX "CGI_" +#endif +#ifndef ME_GOAHEAD_CLIENT_CACHE + #define ME_GOAHEAD_CLIENT_CACHE "css,gif,ico,jpg,js,png" +#endif +#ifndef ME_GOAHEAD_CLIENT_CACHE_LIFESPAN + #define ME_GOAHEAD_CLIENT_CACHE_LIFESPAN 86400 +#endif +#ifndef ME_GOAHEAD_DIGEST + #define ME_GOAHEAD_DIGEST 1 +#endif +#ifndef ME_GOAHEAD_DOCUMENTS + #define ME_GOAHEAD_DOCUMENTS "web" +#endif +#ifndef ME_GOAHEAD_JAVASCRIPT + #define ME_GOAHEAD_JAVASCRIPT 1 +#endif +#ifndef ME_GOAHEAD_LEGACY + #define ME_GOAHEAD_LEGACY 0 +#endif +#ifndef ME_GOAHEAD_LIMIT_BUFFER + #define ME_GOAHEAD_LIMIT_BUFFER 1024 +#endif +#ifndef ME_GOAHEAD_LIMIT_CGI_ARGS + #define ME_GOAHEAD_LIMIT_CGI_ARGS 4096 +#endif +#ifndef ME_GOAHEAD_LIMIT_FILENAME + #define ME_GOAHEAD_LIMIT_FILENAME 256 +#endif +#ifndef ME_GOAHEAD_LIMIT_FILES + #define ME_GOAHEAD_LIMIT_FILES 0 +#endif +#ifndef ME_GOAHEAD_LIMIT_HEADER + #define ME_GOAHEAD_LIMIT_HEADER 2048 +#endif +#ifndef ME_GOAHEAD_LIMIT_HEADERS + #define ME_GOAHEAD_LIMIT_HEADERS 4096 +#endif +#ifndef ME_GOAHEAD_LIMIT_NUM_HEADERS + #define ME_GOAHEAD_LIMIT_NUM_HEADERS 64 +#endif +#ifndef ME_GOAHEAD_LIMIT_PARSE_TIMEOUT + #define ME_GOAHEAD_LIMIT_PARSE_TIMEOUT 5 +#endif +#ifndef ME_GOAHEAD_LIMIT_PASSWORD + #define ME_GOAHEAD_LIMIT_PASSWORD 32 +#endif +#ifndef ME_GOAHEAD_LIMIT_POST + #define ME_GOAHEAD_LIMIT_POST (1024 * 1024 * 32) +#endif +#ifndef ME_GOAHEAD_LIMIT_PUT + #define ME_GOAHEAD_LIMIT_PUT 204800000 +#endif +#ifndef ME_GOAHEAD_LIMIT_SESSION_COUNT + #define ME_GOAHEAD_LIMIT_SESSION_COUNT 512 +#endif +#ifndef ME_GOAHEAD_LIMIT_SESSION_LIFE + #define ME_GOAHEAD_LIMIT_SESSION_LIFE 1800 +#endif +#ifndef ME_GOAHEAD_LIMIT_STRING + #define ME_GOAHEAD_LIMIT_STRING 256 +#endif +#ifndef ME_GOAHEAD_LIMIT_TIMEOUT + #define ME_GOAHEAD_LIMIT_TIMEOUT 60 +#endif +#ifndef ME_GOAHEAD_LIMIT_UPLOAD + #define ME_GOAHEAD_LIMIT_UPLOAD 204800000 +#endif +#ifndef ME_GOAHEAD_LIMIT_URI + #define ME_GOAHEAD_LIMIT_URI 2048 +#endif +#ifndef ME_GOAHEAD_LISTEN + #define ME_GOAHEAD_LISTEN "http://*:80,https://*:443" +#endif +#ifndef ME_GOAHEAD_LOGFILE + #define ME_GOAHEAD_LOGFILE "stderr:0" +#endif +#ifndef ME_GOAHEAD_LOGGING + #define ME_GOAHEAD_LOGGING 1 +#endif +#ifndef ME_GOAHEAD_PUT_DIR + #define ME_GOAHEAD_PUT_DIR "." +#endif +#ifndef ME_GOAHEAD_REALM + #define ME_GOAHEAD_REALM "example.com" +#endif +#ifndef ME_GOAHEAD_REPLACE_MALLOC + #define ME_GOAHEAD_REPLACE_MALLOC 0 +#endif +#ifndef ME_GOAHEAD_SSL_AUTHORITY + #define ME_GOAHEAD_SSL_AUTHORITY "" +#endif +#ifndef ME_GOAHEAD_SSL_CACHE + #define ME_GOAHEAD_SSL_CACHE 512 +#endif +#ifndef ME_GOAHEAD_SSL_CERTIFICATE + #define ME_GOAHEAD_SSL_CERTIFICATE "self.crt" +#endif +#ifndef ME_GOAHEAD_SSL_CIPHERS + #define ME_GOAHEAD_SSL_CIPHERS "" +#endif +#ifndef ME_GOAHEAD_SSL_HANDSHAKES + #define ME_GOAHEAD_SSL_HANDSHAKES 3 +#endif +#ifndef ME_GOAHEAD_SSL_KEY + #define ME_GOAHEAD_SSL_KEY "self.key" +#endif +#ifndef ME_GOAHEAD_SSL_LOG_LEVEL + #define ME_GOAHEAD_SSL_LOG_LEVEL 5 +#endif +#ifndef ME_GOAHEAD_SSL_REVOKE + #define ME_GOAHEAD_SSL_REVOKE "" +#endif +#ifndef ME_GOAHEAD_SSL_TICKET + #define ME_GOAHEAD_SSL_TICKET 1 +#endif +#ifndef ME_GOAHEAD_SSL_TIMEOUT + #define ME_GOAHEAD_SSL_TIMEOUT 86400 +#endif +#ifndef ME_GOAHEAD_SSL_VERIFY_ISSUER + #define ME_GOAHEAD_SSL_VERIFY_ISSUER 0 +#endif +#ifndef ME_GOAHEAD_SSL_VERIFY_PEER + #define ME_GOAHEAD_SSL_VERIFY_PEER 0 +#endif +#ifndef ME_GOAHEAD_STEALTH + #define ME_GOAHEAD_STEALTH 1 +#endif +#ifndef ME_GOAHEAD_TRACING + #define ME_GOAHEAD_TRACING 1 +#endif +#ifndef ME_GOAHEAD_UPLOAD + #define ME_GOAHEAD_UPLOAD 1 +#endif +#ifndef ME_GOAHEAD_UPLOAD_DIR + #define ME_GOAHEAD_UPLOAD_DIR "fancy" +#endif +#ifndef ME_GOAHEAD_XFRAME_HEADER + #define ME_GOAHEAD_XFRAME_HEADER "SAMEORIGIN" +#endif +#ifndef ME_INTEGRATE + #define ME_INTEGRATE 1 +#endif +#ifndef ME_MANIFEST + #define ME_MANIFEST "installs/manifest.me" +#endif +#ifndef ME_MBEDTLS_COMPACT + #define ME_MBEDTLS_COMPACT 1 +#endif +#ifndef ME_NAME + #define ME_NAME "goahead" +#endif +#ifndef ME_OPENSSL_VERSION + #define ME_OPENSSL_VERSION "1.0" +#endif +#ifndef ME_PARTS + #define ME_PARTS "undefined" +#endif +#ifndef ME_PREFIXES + #define ME_PREFIXES "install-prefixes" +#endif +#ifndef ME_PROFILE + #define ME_PROFILE "undefined" +#endif +#ifndef ME_ROM + #define ME_ROM 0 +#endif +#ifndef ME_ROM_TIME + #define ME_ROM_TIME 1505449519432 +#endif +#ifndef ME_STATIC + #define ME_STATIC 1 +#endif +#ifndef ME_TITLE + #define ME_TITLE "Embedthis GoAhead" +#endif +#ifndef ME_VERSION + #define ME_VERSION "5.2.0" +#endif + +/* Prefixes */ +#ifndef ME_ROOT_PREFIX + #define ME_ROOT_PREFIX "/" +#endif +#ifndef ME_BASE_PREFIX + #define ME_BASE_PREFIX "/usr/local" +#endif +#ifndef ME_DATA_PREFIX + #define ME_DATA_PREFIX "/" +#endif +#ifndef ME_STATE_PREFIX + #define ME_STATE_PREFIX "/var" +#endif +#ifndef ME_APP_PREFIX + #define ME_APP_PREFIX "/usr/local/lib/goahead" +#endif +#ifndef ME_VAPP_PREFIX + #define ME_VAPP_PREFIX "/usr/local/lib/goahead/5.2.0" +#endif +#ifndef ME_BIN_PREFIX + #define ME_BIN_PREFIX "/usr/local/bin" +#endif +#ifndef ME_INC_PREFIX + #define ME_INC_PREFIX "/usr/local/include" +#endif +#ifndef ME_LIB_PREFIX + #define ME_LIB_PREFIX "/usr/local/lib" +#endif +#ifndef ME_MAN_PREFIX + #define ME_MAN_PREFIX "/usr/local/share/man" +#endif +#ifndef ME_SBIN_PREFIX + #define ME_SBIN_PREFIX "/usr/local/sbin" +#endif +#ifndef ME_ETC_PREFIX + #define ME_ETC_PREFIX "/etc/goahead" +#endif +#ifndef ME_WEB_PREFIX + #define ME_WEB_PREFIX "/var/www/goahead" +#endif +#ifndef ME_LOG_PREFIX + #define ME_LOG_PREFIX "/var/log/goahead" +#endif +#ifndef ME_SPOOL_PREFIX + #define ME_SPOOL_PREFIX "/var/spool/goahead" +#endif +#ifndef ME_CACHE_PREFIX + #define ME_CACHE_PREFIX "/var/spool/goahead/cache" +#endif +#ifndef ME_SRC_PREFIX + #define ME_SRC_PREFIX "goahead-5.2.0" +#endif + +/* Suffixes */ +#ifndef ME_EXE + #define ME_EXE "" +#endif +#ifndef ME_SHLIB + #define ME_SHLIB ".so" +#endif +#ifndef ME_SHOBJ + #define ME_SHOBJ ".so" +#endif +#ifndef ME_LIB + #define ME_LIB ".a" +#endif +#ifndef ME_OBJ + #define ME_OBJ ".o" +#endif + +/* Profile */ +#ifndef ME_CONFIG_CMD + #define ME_CONFIG_CMD "me -d -q -platform linux-x86-static -static -configure . -gen make" +#endif +#ifndef ME_GOAHEAD_PRODUCT + #define ME_GOAHEAD_PRODUCT 1 +#endif +#ifndef ME_PROFILE + #define ME_PROFILE "static" +#endif +#ifndef ME_TUNE_SIZE + #define ME_TUNE_SIZE 1 +#endif + +/* Miscellaneous */ +#ifndef ME_MAJOR_VERSION + #define ME_MAJOR_VERSION 5 +#endif +#ifndef ME_MINOR_VERSION + #define ME_MINOR_VERSION 2 +#endif +#ifndef ME_PATCH_VERSION + #define ME_PATCH_VERSION 0 +#endif +#ifndef ME_VNUM + #define ME_VNUM 500020000 +#endif + +/* Components */ +#ifndef ME_COM_CC + #define ME_COM_CC 1 +#endif +#ifndef ME_COM_LIB + #define ME_COM_LIB 1 +#endif +#ifndef ME_COM_MATRIXSSL + #define ME_COM_MATRIXSSL 0 +#endif +#ifndef ME_COM_MBEDTLS + #define ME_COM_MBEDTLS 1 +#endif +#ifndef ME_COM_NANOSSL + #define ME_COM_NANOSSL 0 +#endif +#ifndef ME_COM_OPENSSL + #define ME_COM_OPENSSL 0 +#endif +#ifndef ME_COM_OSDEP + #define ME_COM_OSDEP 1 +#endif +#ifndef ME_COM_SSL + #define ME_COM_SSL 1 +#endif +#ifndef ME_COM_VXWORKS + #define ME_COM_VXWORKS 0 +#endif diff --git a/external/goahead-5.2.0/modify/goahead-linux-static-fancy.mk b/external/goahead-5.2.0/modify/goahead-linux-static-fancy.mk new file mode 100644 index 0000000..ed1cb58 --- /dev/null +++ b/external/goahead-5.2.0/modify/goahead-linux-static-fancy.mk @@ -0,0 +1,817 @@ +# +# goahead-linux-static-fancy.mk -- Makefile to build Embedthis GoAhead for linux +# added by xiao +# + +NAME := goahead +VERSION := 5.2.0 +PROFILE ?= static +ARCH ?= $(shell uname -m | sed 's/i.86/x86/;s/x86_64/x64/;s/arm.*/arm/;s/mips.*/mips/') +CC_ARCH ?= $(shell echo $(ARCH) | sed 's/x86/i686/;s/x64/x86_64/') +OS ?= linux +CC ?= gcc +AR ?= ar +CONFIG ?= $(OS)-$(ARCH)-$(PROFILE) +BUILD ?= build/$(CONFIG) +LBIN ?= $(BUILD)/bin +PATH := $(LBIN):$(PATH) + +ME_GOAHEAD_UPLOAD_DIR ?= \"fancy\" # added by xiao // TODO: +ME_COM_COMPILER ?= 1 +ME_COM_LIB ?= 1 +ME_COM_MATRIXSSL ?= 0 +ME_COM_MBEDTLS ?= 1 +ME_COM_NANOSSL ?= 0 +ME_COM_OPENSSL ?= 0 +ME_COM_OSDEP ?= 1 +ME_COM_SSL ?= 1 +ME_COM_VXWORKS ?= 0 + +ME_COM_OPENSSL_PATH ?= "/path/to/openssl" + +ifeq ($(ME_COM_LIB),1) + ME_COM_COMPILER := 1 +endif +ifeq ($(ME_COM_MBEDTLS),1) + ME_COM_SSL := 1 +endif +ifeq ($(ME_COM_OPENSSL),1) + ME_COM_SSL := 1 +endif + +CFLAGS += -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Wl,-z,relro,-z,now -Wl,--as-needed -Wl,--no-copy-dt-needed-entries -Wl,-z,noexecstatck -Wl,-z,noexecheap -pie -fPIE -w +DFLAGS += $(patsubst %,-D%,$(filter ME_%,$(MAKEFLAGS))) -DME_GOAHEAD_UPLOAD_DIR=\"$(ME_GOAHEAD_UPLOAD_DIR)\" -DME_COM_COMPILER=$(ME_COM_COMPILER) -DME_COM_LIB=$(ME_COM_LIB) -DME_COM_MATRIXSSL=$(ME_COM_MATRIXSSL) -DME_COM_MBEDTLS=$(ME_COM_MBEDTLS) -DME_COM_NANOSSL=$(ME_COM_NANOSSL) -DME_COM_OPENSSL=$(ME_COM_OPENSSL) -DME_COM_OSDEP=$(ME_COM_OSDEP) -DME_COM_SSL=$(ME_COM_SSL) -DME_COM_VXWORKS=$(ME_COM_VXWORKS) +IFLAGS += "-I$(BUILD)/inc" +LDFLAGS += +LIBPATHS += -L$(BUILD)/bin +LIBS += -lrt -ldl -lpthread -lm + +DEBUG ?= debug +CFLAGS-debug ?= -g +DFLAGS-debug ?= -DME_DEBUG +LDFLAGS-debug ?= -g +DFLAGS-release ?= +CFLAGS-release ?= -O2 +LDFLAGS-release ?= +CFLAGS += $(CFLAGS-$(DEBUG)) +DFLAGS += $(DFLAGS-$(DEBUG)) +LDFLAGS += $(LDFLAGS-$(DEBUG)) + +ME_ROOT_PREFIX ?= +ME_BASE_PREFIX ?= $(ME_ROOT_PREFIX)/usr/local +ME_DATA_PREFIX ?= $(ME_ROOT_PREFIX)/ +ME_STATE_PREFIX ?= $(ME_ROOT_PREFIX)/var +ME_APP_PREFIX ?= $(ME_BASE_PREFIX)/lib/$(NAME) +ME_VAPP_PREFIX ?= $(ME_APP_PREFIX)/$(VERSION) +ME_BIN_PREFIX ?= $(ME_ROOT_PREFIX)/usr/local/bin +ME_INC_PREFIX ?= $(ME_ROOT_PREFIX)/usr/local/include +ME_LIB_PREFIX ?= $(ME_ROOT_PREFIX)/usr/local/lib +ME_MAN_PREFIX ?= $(ME_ROOT_PREFIX)/usr/local/share/man +ME_SBIN_PREFIX ?= $(ME_ROOT_PREFIX)/usr/local/sbin +ME_ETC_PREFIX ?= $(ME_ROOT_PREFIX)/etc/$(NAME) +ME_WEB_PREFIX ?= $(ME_ROOT_PREFIX)/var/www/$(NAME) +ME_LOG_PREFIX ?= $(ME_ROOT_PREFIX)/var/log/$(NAME) +ME_SPOOL_PREFIX ?= $(ME_ROOT_PREFIX)/var/spool/$(NAME) +ME_CACHE_PREFIX ?= $(ME_ROOT_PREFIX)/var/spool/$(NAME)/cache +ME_SRC_PREFIX ?= $(ME_ROOT_PREFIX)$(NAME)-$(VERSION) + + +TARGETS += $(BUILD)/bin/goahead +TARGETS += $(BUILD)/bin/goahead-test +TARGETS += $(BUILD)/bin/gopass + +unexport CDPATH + +ifndef SHOW +.SILENT: +endif + +all build compile: prep $(TARGETS) + +.PHONY: prep + +prep: + @echo " [Info] Use "make SHOW=1" to trace executed commands." + @if [ "$(CONFIG)" = "" ] ; then echo WARNING: CONFIG not set ; exit 255 ; fi + @if [ "$(ME_APP_PREFIX)" = "" ] ; then echo WARNING: ME_APP_PREFIX not set ; exit 255 ; fi + @[ ! -x $(BUILD)/bin ] && mkdir -p $(BUILD)/bin; true + @[ ! -x $(BUILD)/inc ] && mkdir -p $(BUILD)/inc; true + @[ ! -x $(BUILD)/obj ] && mkdir -p $(BUILD)/obj; true + @[ ! -f $(BUILD)/inc/me.h ] && cp ../modify/goahead-linux-static-fancy-me.h $(BUILD)/inc/me.h ; true + @if ! diff $(BUILD)/inc/me.h ../modify/goahead-linux-static-fancy-me.h >/dev/null ; then\ + cp ../modify/goahead-linux-static-fancy-me.h $(BUILD)/inc/me.h ; \ + fi; true + @if [ -f "$(BUILD)/.makeflags" ] ; then \ + if [ "$(MAKEFLAGS)" != "`cat $(BUILD)/.makeflags`" ] ; then \ + echo " [Warning] Make flags have changed since the last build" ; \ + echo " [Warning] Previous build command: "`cat $(BUILD)/.makeflags`"" ; \ + fi ; \ + fi + @echo "$(MAKEFLAGS)" >$(BUILD)/.makeflags + +clean: + rm -f "$(BUILD)/obj/action.o" + rm -f "$(BUILD)/obj/alloc.o" + rm -f "$(BUILD)/obj/auth.o" + rm -f "$(BUILD)/obj/cgi.o" + rm -f "$(BUILD)/obj/cgitest.o" + rm -f "$(BUILD)/obj/crypt.o" + rm -f "$(BUILD)/obj/file.o" + rm -f "$(BUILD)/obj/fs.o" + rm -f "$(BUILD)/obj/goahead-mbedtls.o" + rm -f "$(BUILD)/obj/goahead-openssl.o" + rm -f "$(BUILD)/obj/goahead.o" + rm -f "$(BUILD)/obj/gopass.o" + rm -f "$(BUILD)/obj/http.o" + rm -f "$(BUILD)/obj/js.o" + rm -f "$(BUILD)/obj/jst.o" + rm -f "$(BUILD)/obj/mbedtls.o" + rm -f "$(BUILD)/obj/options.o" + rm -f "$(BUILD)/obj/osdep.o" + rm -f "$(BUILD)/obj/rom.o" + rm -f "$(BUILD)/obj/route.o" + rm -f "$(BUILD)/obj/runtime.o" + rm -f "$(BUILD)/obj/socket.o" + rm -f "$(BUILD)/obj/test.o" + rm -f "$(BUILD)/obj/time.o" + rm -f "$(BUILD)/obj/upload.o" + rm -f "$(BUILD)/bin/goahead" + rm -f "$(BUILD)/bin/goahead-test" + rm -f "$(BUILD)/bin/gopass" + rm -f "$(BUILD)/.install-certs-modified" + rm -f "$(BUILD)/bin/libgo.a" + rm -f "$(BUILD)/bin/libgoahead-mbedtls.a" + rm -f "$(BUILD)/bin/libmbedtls.a" + +clobber: clean + rm -fr ./$(BUILD) + +# +# embedtls.h +# +DEPS_1 += src/mbedtls/embedtls.h + +$(BUILD)/inc/embedtls.h: $(DEPS_1) + @echo ' [Copy] $(BUILD)/inc/embedtls.h' + mkdir -p "$(BUILD)/inc" + cp src/mbedtls/embedtls.h $(BUILD)/inc/embedtls.h + +# +# me.h +# + +$(BUILD)/inc/me.h: $(DEPS_2) + +# +# osdep.h +# +DEPS_3 += src/osdep/osdep.h +DEPS_3 += $(BUILD)/inc/me.h + +$(BUILD)/inc/osdep.h: $(DEPS_3) + @echo ' [Copy] $(BUILD)/inc/osdep.h' + mkdir -p "$(BUILD)/inc" + cp src/osdep/osdep.h $(BUILD)/inc/osdep.h + +# +# goahead.h +# +DEPS_4 += src/goahead.h +DEPS_4 += $(BUILD)/inc/me.h +DEPS_4 += $(BUILD)/inc/osdep.h + +$(BUILD)/inc/goahead.h: $(DEPS_4) + @echo ' [Copy] $(BUILD)/inc/goahead.h' + mkdir -p "$(BUILD)/inc" + cp src/goahead.h $(BUILD)/inc/goahead.h + +# +# js.h +# +DEPS_5 += src/js.h +DEPS_5 += $(BUILD)/inc/goahead.h + +$(BUILD)/inc/js.h: $(DEPS_5) + @echo ' [Copy] $(BUILD)/inc/js.h' + mkdir -p "$(BUILD)/inc" + cp src/js.h $(BUILD)/inc/js.h + +# +# mbedtls.h +# +DEPS_6 += src/mbedtls/mbedtls.h + +$(BUILD)/inc/mbedtls.h: $(DEPS_6) + @echo ' [Copy] $(BUILD)/inc/mbedtls.h' + mkdir -p "$(BUILD)/inc" + cp src/mbedtls/mbedtls.h $(BUILD)/inc/mbedtls.h + +# +# mps_reader.h +# + +$(BUILD)/inc/mps_reader.h: $(DEPS_7) + +# +# mps_trace.h +# + +$(BUILD)/inc/mps_trace.h: $(DEPS_8) + +# +# crypto.h +# + +$(BUILD)/inc/psa/crypto.h: $(DEPS_9) + +# +# ssl_tls13_keys.h +# + +$(BUILD)/inc/ssl_tls13_keys.h: $(DEPS_10) + +# +# action.o +# +DEPS_11 += $(BUILD)/inc/goahead.h + +$(BUILD)/obj/action.o: \ + src/action.c $(DEPS_11) + @echo ' [Compile] $(BUILD)/obj/action.o' + $(CC) -c -o $(BUILD)/obj/action.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/action.c + +# +# alloc.o +# +DEPS_12 += $(BUILD)/inc/goahead.h + +$(BUILD)/obj/alloc.o: \ + src/alloc.c $(DEPS_12) + @echo ' [Compile] $(BUILD)/obj/alloc.o' + $(CC) -c -o $(BUILD)/obj/alloc.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/alloc.c + +# +# auth.o +# +DEPS_13 += $(BUILD)/inc/goahead.h + +$(BUILD)/obj/auth.o: \ + src/auth.c $(DEPS_13) + @echo ' [Compile] $(BUILD)/obj/auth.o' + $(CC) -c -o $(BUILD)/obj/auth.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/auth.c + +# +# cgi.o +# +DEPS_14 += $(BUILD)/inc/goahead.h + +$(BUILD)/obj/cgi.o: \ + src/cgi.c $(DEPS_14) + @echo ' [Compile] $(BUILD)/obj/cgi.o' + $(CC) -c -o $(BUILD)/obj/cgi.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/cgi.c + +# +# cgitest.o +# + +$(BUILD)/obj/cgitest.o: \ + test/cgitest.c $(DEPS_15) + @echo ' [Compile] $(BUILD)/obj/cgitest.o' + $(CC) -c -o $(BUILD)/obj/cgitest.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) $(IFLAGS) test/cgitest.c + +# +# crypt.o +# +DEPS_16 += $(BUILD)/inc/goahead.h + +$(BUILD)/obj/crypt.o: \ + src/crypt.c $(DEPS_16) + @echo ' [Compile] $(BUILD)/obj/crypt.o' + $(CC) -c -o $(BUILD)/obj/crypt.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/crypt.c + +# +# file.o +# +DEPS_17 += $(BUILD)/inc/goahead.h + +$(BUILD)/obj/file.o: \ + src/file.c $(DEPS_17) + @echo ' [Compile] $(BUILD)/obj/file.o' + $(CC) -c -o $(BUILD)/obj/file.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/file.c + +# +# fs.o +# +DEPS_18 += $(BUILD)/inc/goahead.h + +$(BUILD)/obj/fs.o: \ + src/fs.c $(DEPS_18) + @echo ' [Compile] $(BUILD)/obj/fs.o' + $(CC) -c -o $(BUILD)/obj/fs.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/fs.c + +# +# goahead-mbedtls.o +# +DEPS_19 += $(BUILD)/inc/goahead.h + +$(BUILD)/obj/goahead-mbedtls.o: \ + src/goahead-mbedtls/goahead-mbedtls.c $(DEPS_19) + @echo ' [Compile] $(BUILD)/obj/goahead-mbedtls.o' + $(CC) -c -o $(BUILD)/obj/goahead-mbedtls.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" $(IFLAGS) src/goahead-mbedtls/goahead-mbedtls.c + +# +# goahead-openssl.o +# +DEPS_20 += $(BUILD)/inc/goahead.h + +$(BUILD)/obj/goahead-openssl.o: \ + src/goahead-openssl/goahead-openssl.c $(DEPS_20) + @echo ' [Compile] $(BUILD)/obj/goahead-openssl.o' + $(CC) -c -o $(BUILD)/obj/goahead-openssl.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) $(IFLAGS) "-I$(BUILD)/inc" "-I$(ME_COM_OPENSSL_PATH)/include" src/goahead-openssl/goahead-openssl.c + +# +# goahead.o +# +DEPS_21 += $(BUILD)/inc/goahead.h + +$(BUILD)/obj/goahead.o: \ + src/goahead.c $(DEPS_21) + @echo ' [Compile] $(BUILD)/obj/goahead.o' + $(CC) -c -o $(BUILD)/obj/goahead.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/goahead.c + +# +# gopass.o +# +DEPS_22 += $(BUILD)/inc/goahead.h + +$(BUILD)/obj/gopass.o: \ + src/utils/gopass.c $(DEPS_22) + @echo ' [Compile] $(BUILD)/obj/gopass.o' + $(CC) -c -o $(BUILD)/obj/gopass.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/utils/gopass.c + +# +# http.o +# +DEPS_23 += $(BUILD)/inc/goahead.h + +$(BUILD)/obj/http.o: \ + src/http.c $(DEPS_23) + @echo ' [Compile] $(BUILD)/obj/http.o' + $(CC) -c -o $(BUILD)/obj/http.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/http.c + +# +# js.o +# +DEPS_24 += $(BUILD)/inc/js.h + +$(BUILD)/obj/js.o: \ + src/js.c $(DEPS_24) + @echo ' [Compile] $(BUILD)/obj/js.o' + $(CC) -c -o $(BUILD)/obj/js.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/js.c + +# +# jst.o +# +DEPS_25 += $(BUILD)/inc/goahead.h +DEPS_25 += $(BUILD)/inc/js.h + +$(BUILD)/obj/jst.o: \ + src/jst.c $(DEPS_25) + @echo ' [Compile] $(BUILD)/obj/jst.o' + $(CC) -c -o $(BUILD)/obj/jst.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/jst.c + +# +# mbedtls.h +# + +src/mbedtls/mbedtls.h: $(DEPS_26) + +# +# mbedtls.o +# +DEPS_27 += src/mbedtls/mbedtls.h +DEPS_27 += $(BUILD)/inc/psa/crypto.h +DEPS_27 += $(BUILD)/inc/mps_reader.h +DEPS_27 += $(BUILD)/inc/mps_trace.h +DEPS_27 += $(BUILD)/inc/ssl_tls13_keys.h + +$(BUILD)/obj/mbedtls.o: \ + src/mbedtls/mbedtls.c $(DEPS_27) + @echo ' [Compile] $(BUILD)/obj/mbedtls.o' + $(CC) -c -o $(BUILD)/obj/mbedtls.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" $(IFLAGS) src/mbedtls/mbedtls.c + +# +# options.o +# +DEPS_28 += $(BUILD)/inc/goahead.h + +$(BUILD)/obj/options.o: \ + src/options.c $(DEPS_28) + @echo ' [Compile] $(BUILD)/obj/options.o' + $(CC) -c -o $(BUILD)/obj/options.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/options.c + +# +# osdep.o +# +DEPS_29 += $(BUILD)/inc/goahead.h + +$(BUILD)/obj/osdep.o: \ + src/osdep.c $(DEPS_29) + @echo ' [Compile] $(BUILD)/obj/osdep.o' + $(CC) -c -o $(BUILD)/obj/osdep.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/osdep.c + +# +# rom.o +# +DEPS_30 += $(BUILD)/inc/goahead.h + +$(BUILD)/obj/rom.o: \ + src/rom.c $(DEPS_30) + @echo ' [Compile] $(BUILD)/obj/rom.o' + $(CC) -c -o $(BUILD)/obj/rom.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/rom.c + +# +# route.o +# +DEPS_31 += $(BUILD)/inc/goahead.h + +$(BUILD)/obj/route.o: \ + src/route.c $(DEPS_31) + @echo ' [Compile] $(BUILD)/obj/route.o' + $(CC) -c -o $(BUILD)/obj/route.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/route.c + +# +# runtime.o +# +DEPS_32 += $(BUILD)/inc/goahead.h + +$(BUILD)/obj/runtime.o: \ + src/runtime.c $(DEPS_32) + @echo ' [Compile] $(BUILD)/obj/runtime.o' + $(CC) -c -o $(BUILD)/obj/runtime.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/runtime.c + +# +# socket.o +# +DEPS_33 += $(BUILD)/inc/goahead.h + +$(BUILD)/obj/socket.o: \ + src/socket.c $(DEPS_33) + @echo ' [Compile] $(BUILD)/obj/socket.o' + $(CC) -c -o $(BUILD)/obj/socket.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/socket.c + +# +# test.o +# +DEPS_34 += $(BUILD)/inc/goahead.h +DEPS_34 += $(BUILD)/inc/js.h + +$(BUILD)/obj/test.o: \ + test/test.c $(DEPS_34) + @echo ' [Compile] $(BUILD)/obj/test.o' + $(CC) -c -o $(BUILD)/obj/test.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" test/test.c + +# +# time.o +# +DEPS_35 += $(BUILD)/inc/goahead.h + +$(BUILD)/obj/time.o: \ + src/time.c $(DEPS_35) + @echo ' [Compile] $(BUILD)/obj/time.o' + $(CC) -c -o $(BUILD)/obj/time.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/time.c + +# +# upload.o +# +DEPS_36 += $(BUILD)/inc/goahead.h + +$(BUILD)/obj/upload.o: \ + src/upload.c $(DEPS_36) + @echo ' [Compile] $(BUILD)/obj/upload.o' + $(CC) -c -o $(BUILD)/obj/upload.o $(LDFLAGS) $(CFLAGS) $(DFLAGS) -D_FILE_OFFSET_BITS=64 -D_FILE_OFFSET_BITS=64 -DMBEDTLS_USER_CONFIG_FILE=\"embedtls.h\" -DME_COM_OPENSSL_PATH=$(ME_COM_OPENSSL_PATH) $(IFLAGS) "-I$(ME_COM_OPENSSL_PATH)/include" src/upload.c + +ifeq ($(ME_COM_MBEDTLS),1) +# +# libmbedtls +# +DEPS_37 += $(BUILD)/inc/osdep.h +DEPS_37 += $(BUILD)/inc/embedtls.h +DEPS_37 += $(BUILD)/inc/mbedtls.h +DEPS_37 += $(BUILD)/obj/mbedtls.o + +$(BUILD)/bin/libmbedtls.a: $(DEPS_37) + @echo ' [Link] $(BUILD)/bin/libmbedtls.a' + $(AR) -cr $(BUILD)/bin/libmbedtls.a "$(BUILD)/obj/mbedtls.o" +endif + +ifeq ($(ME_COM_MBEDTLS),1) +# +# libgoahead-mbedtls +# +DEPS_38 += $(BUILD)/bin/libmbedtls.a +DEPS_38 += $(BUILD)/obj/goahead-mbedtls.o + +$(BUILD)/bin/libgoahead-mbedtls.a: $(DEPS_38) + @echo ' [Link] $(BUILD)/bin/libgoahead-mbedtls.a' + $(AR) -cr $(BUILD)/bin/libgoahead-mbedtls.a "$(BUILD)/obj/goahead-mbedtls.o" +endif + +ifeq ($(ME_COM_OPENSSL),1) +# +# libgoahead-openssl +# +DEPS_39 += $(BUILD)/obj/goahead-openssl.o + +$(BUILD)/bin/libgoahead-openssl.a: $(DEPS_39) + @echo ' [Link] $(BUILD)/bin/libgoahead-openssl.a' + $(AR) -cr $(BUILD)/bin/libgoahead-openssl.a "$(BUILD)/obj/goahead-openssl.o" +endif + +# +# libgo +# +DEPS_40 += $(BUILD)/inc/osdep.h +ifeq ($(ME_COM_MBEDTLS),1) + DEPS_40 += $(BUILD)/bin/libgoahead-mbedtls.a +endif +ifeq ($(ME_COM_OPENSSL),1) + DEPS_40 += $(BUILD)/bin/libgoahead-openssl.a +endif +DEPS_40 += $(BUILD)/inc/goahead.h +DEPS_40 += $(BUILD)/inc/js.h +DEPS_40 += $(BUILD)/obj/action.o +DEPS_40 += $(BUILD)/obj/alloc.o +DEPS_40 += $(BUILD)/obj/auth.o +DEPS_40 += $(BUILD)/obj/cgi.o +DEPS_40 += $(BUILD)/obj/crypt.o +DEPS_40 += $(BUILD)/obj/file.o +DEPS_40 += $(BUILD)/obj/fs.o +DEPS_40 += $(BUILD)/obj/http.o +DEPS_40 += $(BUILD)/obj/js.o +DEPS_40 += $(BUILD)/obj/jst.o +DEPS_40 += $(BUILD)/obj/options.o +DEPS_40 += $(BUILD)/obj/osdep.o +DEPS_40 += $(BUILD)/obj/rom.o +DEPS_40 += $(BUILD)/obj/route.o +DEPS_40 += $(BUILD)/obj/runtime.o +DEPS_40 += $(BUILD)/obj/socket.o +DEPS_40 += $(BUILD)/obj/time.o +DEPS_40 += $(BUILD)/obj/upload.o + +$(BUILD)/bin/libgo.a: $(DEPS_40) + @echo ' [Link] $(BUILD)/bin/libgo.a' + $(AR) -cr $(BUILD)/bin/libgo.a "$(BUILD)/obj/action.o" "$(BUILD)/obj/alloc.o" "$(BUILD)/obj/auth.o" "$(BUILD)/obj/cgi.o" "$(BUILD)/obj/crypt.o" "$(BUILD)/obj/file.o" "$(BUILD)/obj/fs.o" "$(BUILD)/obj/http.o" "$(BUILD)/obj/js.o" "$(BUILD)/obj/jst.o" "$(BUILD)/obj/options.o" "$(BUILD)/obj/osdep.o" "$(BUILD)/obj/rom.o" "$(BUILD)/obj/route.o" "$(BUILD)/obj/runtime.o" "$(BUILD)/obj/socket.o" "$(BUILD)/obj/time.o" "$(BUILD)/obj/upload.o" + +# +# install-certs +# +DEPS_41 += src/certs/samples/ca.crt +DEPS_41 += src/certs/samples/ca.key +DEPS_41 += src/certs/samples/ec.crt +DEPS_41 += src/certs/samples/ec.key +DEPS_41 += src/certs/samples/roots.crt +DEPS_41 += src/certs/samples/self.crt +DEPS_41 += src/certs/samples/self.key +DEPS_41 += src/certs/samples/test.crt +DEPS_41 += src/certs/samples/test.key + +$(BUILD)/.install-certs-modified: $(DEPS_41) + @echo ' [Copy] $(BUILD)/bin' + mkdir -p "$(BUILD)/bin" + cp src/certs/samples/ca.crt $(BUILD)/bin/ca.crt + cp src/certs/samples/ca.key $(BUILD)/bin/ca.key + cp src/certs/samples/ec.crt $(BUILD)/bin/ec.crt + cp src/certs/samples/ec.key $(BUILD)/bin/ec.key + cp src/certs/samples/roots.crt $(BUILD)/bin/roots.crt + cp src/certs/samples/self.crt $(BUILD)/bin/self.crt + cp src/certs/samples/self.key $(BUILD)/bin/self.key + cp src/certs/samples/test.crt $(BUILD)/bin/test.crt + cp src/certs/samples/test.key $(BUILD)/bin/test.key + touch "$(BUILD)/.install-certs-modified" + +# +# goahead +# +DEPS_42 += $(BUILD)/bin/libgo.a +DEPS_42 += $(BUILD)/.install-certs-modified +DEPS_42 += $(BUILD)/inc/goahead.h +DEPS_42 += $(BUILD)/inc/js.h +DEPS_42 += $(BUILD)/obj/goahead.o + +ifeq ($(ME_COM_MBEDTLS),1) + LIBS_42 += -lmbedtls +endif +ifeq ($(ME_COM_MBEDTLS),1) + LIBS_42 += -lgoahead-mbedtls +endif +ifeq ($(ME_COM_MBEDTLS),1) + LIBS_42 += -lmbedtls +endif +ifeq ($(ME_COM_OPENSSL),1) + LIBS_42 += -lgoahead-openssl +endif +ifeq ($(ME_COM_OPENSSL),1) +ifeq ($(ME_COM_SSL),1) + LIBS_42 += -lssl + LIBPATHS_42 += -L"$(ME_COM_OPENSSL_PATH)" +endif +endif +ifeq ($(ME_COM_OPENSSL),1) + LIBS_42 += -lcrypto + LIBPATHS_42 += -L"$(ME_COM_OPENSSL_PATH)" +endif +LIBS_42 += -lgo +ifeq ($(ME_COM_OPENSSL),1) + LIBS_42 += -lgoahead-openssl +endif +ifeq ($(ME_COM_MBEDTLS),1) + LIBS_42 += -lgoahead-mbedtls +endif + +$(BUILD)/bin/goahead: $(DEPS_42) + @echo ' [Link] $(BUILD)/bin/goahead' + $(CC) -o $(BUILD)/bin/goahead $(LDFLAGS) $(LIBPATHS) "$(BUILD)/obj/goahead.o" $(LIBPATHS_42) $(LIBS_42) $(LIBS_42) $(LIBS) $(LIBS) + +# +# goahead-test +# +DEPS_43 += $(BUILD)/bin/libgo.a +DEPS_43 += $(BUILD)/.install-certs-modified +DEPS_43 += $(BUILD)/obj/test.o + +ifeq ($(ME_COM_MBEDTLS),1) + LIBS_43 += -lmbedtls +endif +ifeq ($(ME_COM_MBEDTLS),1) + LIBS_43 += -lgoahead-mbedtls +endif +ifeq ($(ME_COM_MBEDTLS),1) + LIBS_43 += -lmbedtls +endif +ifeq ($(ME_COM_OPENSSL),1) + LIBS_43 += -lgoahead-openssl +endif +ifeq ($(ME_COM_OPENSSL),1) +ifeq ($(ME_COM_SSL),1) + LIBS_43 += -lssl + LIBPATHS_43 += -L"$(ME_COM_OPENSSL_PATH)" +endif +endif +ifeq ($(ME_COM_OPENSSL),1) + LIBS_43 += -lcrypto + LIBPATHS_43 += -L"$(ME_COM_OPENSSL_PATH)" +endif +LIBS_43 += -lgo +ifeq ($(ME_COM_OPENSSL),1) + LIBS_43 += -lgoahead-openssl +endif +ifeq ($(ME_COM_MBEDTLS),1) + LIBS_43 += -lgoahead-mbedtls +endif + +$(BUILD)/bin/goahead-test: $(DEPS_43) + @echo ' [Link] $(BUILD)/bin/goahead-test' + $(CC) -o $(BUILD)/bin/goahead-test $(LDFLAGS) $(LIBPATHS) "$(BUILD)/obj/test.o" $(LIBPATHS_43) $(LIBS_43) $(LIBS_43) $(LIBS) $(LIBS) + +# +# gopass +# +DEPS_44 += $(BUILD)/bin/libgo.a +DEPS_44 += $(BUILD)/inc/goahead.h +DEPS_44 += $(BUILD)/inc/js.h +DEPS_44 += $(BUILD)/obj/gopass.o + +ifeq ($(ME_COM_MBEDTLS),1) + LIBS_44 += -lmbedtls +endif +ifeq ($(ME_COM_MBEDTLS),1) + LIBS_44 += -lgoahead-mbedtls +endif +ifeq ($(ME_COM_MBEDTLS),1) + LIBS_44 += -lmbedtls +endif +ifeq ($(ME_COM_OPENSSL),1) + LIBS_44 += -lgoahead-openssl +endif +ifeq ($(ME_COM_OPENSSL),1) +ifeq ($(ME_COM_SSL),1) + LIBS_44 += -lssl + LIBPATHS_44 += -L"$(ME_COM_OPENSSL_PATH)" +endif +endif +ifeq ($(ME_COM_OPENSSL),1) + LIBS_44 += -lcrypto + LIBPATHS_44 += -L"$(ME_COM_OPENSSL_PATH)" +endif +LIBS_44 += -lgo +ifeq ($(ME_COM_OPENSSL),1) + LIBS_44 += -lgoahead-openssl +endif +ifeq ($(ME_COM_MBEDTLS),1) + LIBS_44 += -lgoahead-mbedtls +endif + +$(BUILD)/bin/gopass: $(DEPS_44) + @echo ' [Link] $(BUILD)/bin/gopass' + $(CC) -o $(BUILD)/bin/gopass $(LDFLAGS) $(LIBPATHS) "$(BUILD)/obj/gopass.o" $(LIBPATHS_44) $(LIBS_44) $(LIBS_44) $(LIBS) $(LIBS) + +# +# stop +# + +stop: $(DEPS_45) + +# +# installBinary +# + +installBinary: $(DEPS_46) + mkdir -p "$(ME_APP_PREFIX)" ; \ + rm -f "$(ME_APP_PREFIX)/latest" ; \ + ln -s "$(VERSION)" "$(ME_APP_PREFIX)/latest" ; \ + mkdir -p "$(ME_MAN_PREFIX)/man1" ; \ + chmod 755 "$(ME_MAN_PREFIX)/man1" ; \ + mkdir -p "$(ME_VAPP_PREFIX)/bin" ; \ + cp $(BUILD)/bin/goahead $(ME_VAPP_PREFIX)/bin/goahead ; \ + chmod 755 "$(ME_VAPP_PREFIX)/bin/goahead" ; \ + mkdir -p "$(ME_BIN_PREFIX)" ; \ + rm -f "$(ME_BIN_PREFIX)/goahead" ; \ + ln -s "$(ME_VAPP_PREFIX)/bin/goahead" "$(ME_BIN_PREFIX)/goahead" ; \ + mkdir -p "$(ME_VAPP_PREFIX)/bin" ; \ + cp $(BUILD)/bin/roots.crt $(ME_VAPP_PREFIX)/bin/roots.crt ; \ + mkdir -p "$(ME_ETC_PREFIX)" ; \ + cp $(BUILD)/bin/self.crt $(ME_ETC_PREFIX)/self.crt ; \ + mkdir -p "$(ME_ETC_PREFIX)" ; \ + cp $(BUILD)/bin/self.key $(ME_ETC_PREFIX)/self.key ; \ + mkdir -p "$(ME_WEB_PREFIX)" ; \ + cp src/web/index.html $(ME_WEB_PREFIX)/index.html ; \ + cp src/web/favicon.ico $(ME_WEB_PREFIX)/favicon.ico ; \ + mkdir -p "$(ME_ETC_PREFIX)" ; \ + cp src/auth.txt $(ME_ETC_PREFIX)/auth.txt ; \ + cp src/route.txt $(ME_ETC_PREFIX)/route.txt ; \ + mkdir -p "$(ME_VAPP_PREFIX)/doc/man/man1" ; \ + cp doc/dist/man/goahead.1 $(ME_VAPP_PREFIX)/doc/man/man1/goahead.1 ; \ + mkdir -p "$(ME_MAN_PREFIX)/man1" ; \ + rm -f "$(ME_MAN_PREFIX)/man1/goahead.1" ; \ + ln -s "$(ME_VAPP_PREFIX)/doc/man/man1/goahead.1" "$(ME_MAN_PREFIX)/man1/goahead.1" ; \ + cp doc/dist/man/gopass.1 $(ME_VAPP_PREFIX)/doc/man/man1/gopass.1 ; \ + mkdir -p "$(ME_MAN_PREFIX)/man1" ; \ + rm -f "$(ME_MAN_PREFIX)/man1/gopass.1" ; \ + ln -s "$(ME_VAPP_PREFIX)/doc/man/man1/gopass.1" "$(ME_MAN_PREFIX)/man1/gopass.1" ; \ + cp doc/dist/man/webcomp.1 $(ME_VAPP_PREFIX)/doc/man/man1/webcomp.1 ; \ + mkdir -p "$(ME_MAN_PREFIX)/man1" ; \ + rm -f "$(ME_MAN_PREFIX)/man1/webcomp.1" ; \ + ln -s "$(ME_VAPP_PREFIX)/doc/man/man1/webcomp.1" "$(ME_MAN_PREFIX)/man1/webcomp.1" + +# +# start +# + +start: $(DEPS_47) + +# +# install +# +DEPS_48 += stop +DEPS_48 += installBinary +DEPS_48 += start + +install: $(DEPS_48) + +# +# installPrep +# + +installPrep: $(DEPS_49) + if [ "`id -u`" != 0 ] ; \ + then echo "Must run as root. Rerun with sudo." ; \ + exit 255 ; \ + fi + +# +# uninstall +# +DEPS_50 += stop + +uninstall: $(DEPS_50) + +# +# uninstallBinary +# + +uninstallBinary: $(DEPS_51) + rm -fr "$(ME_WEB_PREFIX)" ; \ + rm -fr "$(ME_VAPP_PREFIX)" ; \ + rmdir -p "$(ME_ETC_PREFIX)" 2>/dev/null ; true ; \ + rmdir -p "$(ME_WEB_PREFIX)" 2>/dev/null ; true ; \ + rm -f "$(ME_APP_PREFIX)/latest" ; \ + rmdir -p "$(ME_APP_PREFIX)" 2>/dev/null ; true + +# +# version +# + +version: $(DEPS_52) + echo $(VERSION) + diff --git a/external/goahead-5.2.0/modify/http.c b/external/goahead-5.2.0/modify/http.c index c0a89df..0c05644 100644 --- a/external/goahead-5.2.0/modify/http.c +++ b/external/goahead-5.2.0/modify/http.c @@ -1130,7 +1130,10 @@ static void parseHeaders(Webs *wp) return; } } else { - if (wp->rxLen > ME_GOAHEAD_LIMIT_POST) { + // ====================== added by xiao ====================== // + // if (wp->rxLen > ME_GOAHEAD_LIMIT_POST) { // open source code. + if (wp->rxLen > (1024 * 1024 * 32)) { // modified by xiao. + // ====================== added by xiao ====================== // websError(wp, HTTP_CODE_REQUEST_TOO_LARGE | WEBS_CLOSE, "Too big"); return; } diff --git a/test/middleware/AppManager/src/AppManager_Test.cpp b/test/middleware/AppManager/src/AppManager_Test.cpp index d1bafe9..32e3e52 100644 --- a/test/middleware/AppManager/src/AppManager_Test.cpp +++ b/test/middleware/AppManager/src/AppManager_Test.cpp @@ -50,6 +50,14 @@ public: protected: const AppParam mAppParam; }; +// ../output_files/test/bin/AppManagerTest --gtest_filter=AppManagerTest.INTEGRATION_AppManager_EXAMPLE_Demo0 +TEST_F(AppManagerTest, INTEGRATION_AppManager_EXAMPLE_Demo0) +{ + IAppManager::GetInstance()->Init(mAppParam); + std::this_thread::sleep_for(std::chrono::milliseconds(100)); + std::this_thread::sleep_for(std::chrono::milliseconds(200000)); + IAppManager::GetInstance()->UnInit(); +} // ../output_files/test/bin/AppManagerTest --gtest_filter=AppManagerTest.INTEGRATION_AppManager_EXAMPLE_Demo TEST_F(AppManagerTest, INTEGRATION_AppManager_EXAMPLE_Demo) { @@ -65,7 +73,7 @@ TEST_F(AppManagerTest, INTEGRATION_AppManager_EXAMPLE_Demo2) IAppManager::GetInstance()->Init(mAppParam); std::this_thread::sleep_for(std::chrono::milliseconds(100)); MockUploadFiles(); - std::this_thread::sleep_for(std::chrono::milliseconds(10000)); + std::this_thread::sleep_for(std::chrono::milliseconds(1000)); IAppManager::GetInstance()->UnInit(); } } // namespace AppManagerTest \ No newline at end of file diff --git a/utils/WebServer/CMakeLists.txt b/utils/WebServer/CMakeLists.txt index 899a2be..abea004 100644 --- a/utils/WebServer/CMakeLists.txt +++ b/utils/WebServer/CMakeLists.txt @@ -26,6 +26,13 @@ else() endif() add_definitions(-DGOAHEAD_DOCUMENTS_PATH=\"${GOAHEAD_DOCUMENTS_PATH}\") +if (NOT DEFINED GOAHEAD_UPLOAD_TMP_PATH) +message(FATAL_ERROR "YYou should set the GOAHEAD_UPLOAd_TMP_PATH variable so that the GOAHEAD module can temporarily save uploaded files. +For example: set(GOAHEAD_UPLOAd_TMP_PATH \"./goahead\") +See:${IPC_SDK_PATH}/build/cmake/toolchain/linux.toolchain.cmake") +endif() +add_definitions(-DGOAHEAD_UPLOAD_TMP_PATH=\"${GOAHEAD_UPLOAD_TMP_PATH}\") + aux_source_directory(./src SRC_FILES) set(TARGET_NAME WebServer) @@ -72,7 +79,8 @@ add_custom_command( add_custom_command( OUTPUT ${EXTERNAL_LIBS_OUTPUT_PATH}/libgo.a DEPENDS ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/Makefile - COMMAND make CC=${CMAKE_C_COMPILER} ARCH=${SET_ARCH} PROFILE=${LIB_TYPE} + COMMAND make CC=${CMAKE_C_COMPILER} ARCH=${SET_ARCH} PROFILE=${LIB_TYPE} ME_GOAHEAD_UPLOAD_DIR=\"${GOAHEAD_UPLOAD_TMP_PATH}\" -f ../modify/goahead-linux-static-fancy.mk + # COMMAND make CC=${CMAKE_C_COMPILER} ARCH=${SET_ARCH} PROFILE=${LIB_TYPE} -f ../modify/goahead-linux-static-fancy.mk // TODO: COMMAND mv ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/build/${GOAHEAD_INCLUDE_PATH}/bin/libgo.a ${EXTERNAL_LIBS_OUTPUT_PATH}/libgo.a COMMAND mv ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/build/${GOAHEAD_INCLUDE_PATH}/bin/libmbedtls.a ${EXTERNAL_LIBS_OUTPUT_PATH}/libmbedtls.a COMMAND mv ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/build/${GOAHEAD_INCLUDE_PATH}/bin/libgoahead-mbedtls.a ${EXTERNAL_LIBS_OUTPUT_PATH}/libgoahead-mbedtls.a @@ -85,6 +93,8 @@ add_custom_command( add_custom_target( libgo.a DEPENDS ${EXTERNAL_LIBS_OUTPUT_PATH}/libgo.a + COMMAND mkdir ${GOAHEAD_UPLOAD_TMP_PATH} + WORKING_DIRECTORY ${PLATFORM_PATH}/cmake-shell/ ) define_file_name(${TARGET_NAME}) \ No newline at end of file diff --git a/utils/WebServer/README.md b/utils/WebServer/README.md index beb2873..93f907b 100644 --- a/utils/WebServer/README.md +++ b/utils/WebServer/README.md @@ -40,6 +40,8 @@ add_custom_target( ## 1.4. 代码整改 +### 1.4.1. web服务安全退出 +    由于官方源码是不超时阻塞,为了方便自动化测试,把官方源码的不超时阻塞改成超时阻塞。 ``` PUBLIC void websServiceEvents(int *finished) @@ -70,4 +72,18 @@ PUBLIC void websServiceEvents(int *finished) // ===================== added by xiao end ===================== // } } +``` + +### 1.4.2. HTTP POST 文件限制 + +   源码限制POST文件大小太小,这里修改为32M。 + +``` +// ====================== added by xiao ====================== // +// if (wp->rxLen > ME_GOAHEAD_LIMIT_POST) { // open source code. +if (wp->rxLen > (1024 * 1024 * 32)) { // modified by xiao. +// ====================== added by xiao ====================== // + websError(wp, HTTP_CODE_REQUEST_TOO_LARGE | WEBS_CLOSE, "Too big"); + return; +} ``` \ No newline at end of file diff --git a/utils/WebServer/src/WebServer.cpp b/utils/WebServer/src/WebServer.cpp index a6e8468..db7f9ee 100644 --- a/utils/WebServer/src/WebServer.cpp +++ b/utils/WebServer/src/WebServer.cpp @@ -82,21 +82,18 @@ static bool AppUploadHandle(Webs *wp) if (scaselessmatch(wp->method, "POST")) { for (s = hashFirst(wp->files); s; s = hashNext(wp->files, s)) { up = (WebsUpload *)s->content.value.symbol; - websWrite(wp, "FILE: %s\r\n", s->name.value.string); - websWrite(wp, "FILENAME=%s\r\n", up->filename); - websWrite(wp, "CLIENT=%s\r\n", up->clientFilename); - websWrite(wp, "TYPE=%s\r\n", up->contentType); - websWrite(wp, "SIZE=%d\r\n", up->size); + LogInfo("FILE: %s\r\n", s->name.value.string); + LogInfo("FILENAME=%s\r\n", up->filename); + LogInfo("CLIENT=%s\r\n", up->clientFilename); + LogInfo("TYPE=%s\r\n", up->contentType); + LogInfo("SIZE=%d\r\n", up->size); upfile = sfmt("%s/tmp/%s", websGetDocuments(), up->clientFilename); if (rename(up->filename, upfile) < 0) { error("Cannot rename uploaded file: %s to %s, errno %d", up->filename, upfile, errno); } wfree(upfile); } - websWrite(wp, "\r\nVARS:\r\n"); - for (s = hashFirst(wp->vars); s; s = hashNext(wp->vars, s)) { - websWrite(wp, "%s=%s\r\n", s->name.value.string, s->content.value.string); - } + gHttpHandle(wp->url, 0, response_handle, wp); } websDone(wp); return 1; @@ -132,10 +129,8 @@ StatusCode WebServerInit(const WebServerParam webParam) websAddRoute("/app", "appRequestHandle", 0); } if (nullptr != webParam.mHttpRequestHandle) { - // gHttpHandle = webParam.mHttpRequestHandle; websDefineHandler("AppUploadHandle", 0, AppUploadHandle, 0, 0); websAddRoute("/upload", "AppUploadHandle", 0); - // websUrlHandlerDefine("/upload", (void *)AppUploadHandle); } websServiceEvents(&finished); logmsg(1, "Instructed to exit\n");