Improve:goahead compile.

This commit is contained in:
Fancy code 2024-03-02 21:53:28 -08:00
parent 202e502b90
commit dd0a7304f5
8 changed files with 1275 additions and 14 deletions

View File

@ -43,6 +43,7 @@ set(LOG_SUPPORT "true")
# ------------ build log end ------------ # # ------------ build log end ------------ #
# ------------ build GoAhead ------------ # # ------------ build GoAhead ------------ #
set(GOAHEAD_DOCUMENTS_PATH "web") set(GOAHEAD_DOCUMENTS_PATH "web")
set(GOAHEAD_UPLOAD_TMP_PATH "./goahead")
# GOAHEAD_CONFIG_FILE_PATH should be set when cross compile # GOAHEAD_CONFIG_FILE_PATH should be set when cross compile
# set(GOAHEAD_CONFIG_FILE_PATH "./") # set(GOAHEAD_CONFIG_FILE_PATH "./")
# ------------ build GoAhead end ------------ # # ------------ build GoAhead end ------------ #

View File

@ -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

View File

@ -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)

View File

@ -1130,7 +1130,10 @@ static void parseHeaders(Webs *wp)
return; return;
} }
} else { } 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"); websError(wp, HTTP_CODE_REQUEST_TOO_LARGE | WEBS_CLOSE, "Too big");
return; return;
} }

View File

@ -50,6 +50,14 @@ public:
protected: protected:
const AppParam mAppParam; 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 // ../output_files/test/bin/AppManagerTest --gtest_filter=AppManagerTest.INTEGRATION_AppManager_EXAMPLE_Demo
TEST_F(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); IAppManager::GetInstance()->Init(mAppParam);
std::this_thread::sleep_for(std::chrono::milliseconds(100)); std::this_thread::sleep_for(std::chrono::milliseconds(100));
MockUploadFiles(); MockUploadFiles();
std::this_thread::sleep_for(std::chrono::milliseconds(10000)); std::this_thread::sleep_for(std::chrono::milliseconds(1000));
IAppManager::GetInstance()->UnInit(); IAppManager::GetInstance()->UnInit();
} }
} // namespace AppManagerTest } // namespace AppManagerTest

View File

@ -26,6 +26,13 @@ else()
endif() endif()
add_definitions(-DGOAHEAD_DOCUMENTS_PATH=\"${GOAHEAD_DOCUMENTS_PATH}\") 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) aux_source_directory(./src SRC_FILES)
set(TARGET_NAME WebServer) set(TARGET_NAME WebServer)
@ -72,7 +79,8 @@ add_custom_command(
add_custom_command( add_custom_command(
OUTPUT ${EXTERNAL_LIBS_OUTPUT_PATH}/libgo.a OUTPUT ${EXTERNAL_LIBS_OUTPUT_PATH}/libgo.a
DEPENDS ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/Makefile 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/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/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 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( add_custom_target(
libgo.a libgo.a
DEPENDS ${EXTERNAL_LIBS_OUTPUT_PATH}/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}) define_file_name(${TARGET_NAME})

View File

@ -40,6 +40,8 @@ add_custom_target(
## 1.4. 代码整改 ## 1.4. 代码整改
### 1.4.1. web服务安全退出
   由于官方源码是不超时阻塞,为了方便自动化测试,把官方源码的不超时阻塞改成超时阻塞。    由于官方源码是不超时阻塞,为了方便自动化测试,把官方源码的不超时阻塞改成超时阻塞。
``` ```
PUBLIC void websServiceEvents(int *finished) PUBLIC void websServiceEvents(int *finished)
@ -70,4 +72,18 @@ PUBLIC void websServiceEvents(int *finished)
// ===================== added by xiao end ===================== // // ===================== 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;
}
``` ```

View File

@ -82,21 +82,18 @@ static bool AppUploadHandle(Webs *wp)
if (scaselessmatch(wp->method, "POST")) { if (scaselessmatch(wp->method, "POST")) {
for (s = hashFirst(wp->files); s; s = hashNext(wp->files, s)) { for (s = hashFirst(wp->files); s; s = hashNext(wp->files, s)) {
up = (WebsUpload *)s->content.value.symbol; up = (WebsUpload *)s->content.value.symbol;
websWrite(wp, "FILE: %s\r\n", s->name.value.string); LogInfo("FILE: %s\r\n", s->name.value.string);
websWrite(wp, "FILENAME=%s\r\n", up->filename); LogInfo("FILENAME=%s\r\n", up->filename);
websWrite(wp, "CLIENT=%s\r\n", up->clientFilename); LogInfo("CLIENT=%s\r\n", up->clientFilename);
websWrite(wp, "TYPE=%s\r\n", up->contentType); LogInfo("TYPE=%s\r\n", up->contentType);
websWrite(wp, "SIZE=%d\r\n", up->size); LogInfo("SIZE=%d\r\n", up->size);
upfile = sfmt("%s/tmp/%s", websGetDocuments(), up->clientFilename); upfile = sfmt("%s/tmp/%s", websGetDocuments(), up->clientFilename);
if (rename(up->filename, upfile) < 0) { if (rename(up->filename, upfile) < 0) {
error("Cannot rename uploaded file: %s to %s, errno %d", up->filename, upfile, errno); error("Cannot rename uploaded file: %s to %s, errno %d", up->filename, upfile, errno);
} }
wfree(upfile); wfree(upfile);
} }
websWrite(wp, "\r\nVARS:\r\n"); gHttpHandle(wp->url, 0, response_handle, wp);
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);
}
} }
websDone(wp); websDone(wp);
return 1; return 1;
@ -132,10 +129,8 @@ StatusCode WebServerInit(const WebServerParam webParam)
websAddRoute("/app", "appRequestHandle", 0); websAddRoute("/app", "appRequestHandle", 0);
} }
if (nullptr != webParam.mHttpRequestHandle) { if (nullptr != webParam.mHttpRequestHandle) {
// gHttpHandle = webParam.mHttpRequestHandle;
websDefineHandler("AppUploadHandle", 0, AppUploadHandle, 0, 0); websDefineHandler("AppUploadHandle", 0, AppUploadHandle, 0, 0);
websAddRoute("/upload", "AppUploadHandle", 0); websAddRoute("/upload", "AppUploadHandle", 0);
// websUrlHandlerDefine("/upload", (void *)AppUploadHandle);
} }
websServiceEvents(&finished); websServiceEvents(&finished);
logmsg(1, "Instructed to exit\n"); logmsg(1, "Instructed to exit\n");