123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- #
- # Makefile - Embedthis GoAhead Makefile wrapper for per-platform makefiles
- #
- # This Makefile is for Unix/Linux and Cygwin. On windows, it can be invoked via make.bat.
- #
- # You can use this Makefile and build via "make" with a pre-selected configuration. Alternatively,
- # you can build using the MakeMe tool for for a fully configurable build. If you wish to
- # cross-compile, you should use MakeMe.
- #
- # See projects/$(OS)-$(ARCH)-$(PROFILE)-me.h for configuration default settings. Can override
- # via make environment variables. For example: make ME_COM_SQLITE=0. These are converted to
- # DFLAGS and will then override the me.h default values. Use "make help" for a list of available
- # make variable options.
- #
- NAME := goahead
- OS := $(shell uname | sed 's/CYGWIN.*/windows/;s/Darwin/macosx/' | tr '[A-Z]' '[a-z]')
- OS := linux
- ARCH := arm
- CC := arm-uclinuxeabi-gcc
- AR := arm-uclinuxeabi-ar
- PROFILE := static
- CFLAGS := -Os -mcpu=cortex-m3 -mthumb
- CFLAGS += -I$(INSTALL_ROOT)/A2F/root/usr/include
- CFLAGS += -I$(INSTALL_ROOT)/A2F/uclibc/include
- LDFLAGS := -mcpu=cortex-m3 -mthumb -L$(INSTALL_ROOT)/A2F/root/usr/lib
- ifeq ($(ARCH),)
- ifeq ($(OS),windows)
- ifeq ($(PROCESSOR_ARCHITEW6432),AMD64)
- ARCH?=x64
- else
- ARCH?=x86
- endif
- else
- ARCH:= $(shell uname -m | sed 's/i.86/x86/;s/x86_64/x64/;s/arm.*/arm/;s/mips.*/mips/')
- endif
- endif
- ifeq ($(OS),windows)
- MAKE := MAKEFLAGS= projects/windows.bat $(ARCH) nmake -nologo
- EXT := nmake
- else
- MAKE := $(shell if which gmake >/dev/null 2>&1; then echo gmake ; else echo make ; fi) --no-print-directory
- EXT := mk
- endif
- BIN := $(OS)-$(ARCH)-$(PROFILE)/bin
- PATH := $(BIN):$(PATH)
- .EXPORT_ALL_VARIABLES:
- all compile:
- @if [ ! -f projects/$(NAME)-$(OS)-$(PROFILE).$(EXT) ] ; then \
- echo "The build configuration projects/$(NAME)-$(OS)-$(PROFILE).$(EXT) is not supported" ; exit 255 ; \
- fi
- @echo $(MAKE) -f projects/$(NAME)-$(OS)-$(PROFILE).$(EXT) $@
- @$(MAKE) -f projects/$(NAME)-$(OS)-$(PROFILE).$(EXT) $@
- @echo ; echo 'You can now install via "sudo make $(MAKEFLAGS) install" or run GoAhead via: "sudo make run"'
- @echo "To run locally, put $(OS)-$(ARCH)-$(PROFILE)/bin in your path" ; echo
- clean clobber:
- @$(MAKE) -f projects/$(NAME)-$(OS)-$(PROFILE).$(EXT) $@
- #deploy:
- # @echo ' [Deploy] $(MAKE) ME_ROOT_PREFIX=$(OS)-$(ARCH)-$(PROFILE)/deploy -f projects/$(NAME)-$(OS)-$(PROFILE). $(EXT) installBinary'
- # @$(MAKE) ME_ROOT_PREFIX=$(OS)-$(ARCH)-$(PROFILE)/deploy -f projects/$(NAME)-$(OS)-$(PROFILE).$(EXT) installBinary
- #
- #install:
- # $(MAKE) -f projects/$(NAME)-$(OS)-$(PROFILE).$(EXT) $@
- #ifneq ($(OS),windows)
- # @echo ; echo 'You can now run via "sudo goahead -v --home /etc/goahead /var/www/goahead-default"'
- #else
- # @echo ; echo 'You can now run via "goahead -v" in the goahead installation directory.'
- #endif
- version:
- @$(MAKE) -f projects/$(NAME)-$(OS)-$(PROFILE).$(EXT) $@
- help:
- @echo '' >&2
- @echo 'usage: make [clean, compile, deploy, install, run, uninstall]' >&2
- @echo '' >&2
- @echo 'With make, the default configuration can be modified by setting make' >&2
- @echo 'variables. Set to 0 to disable and 1 to enable:' >&2
- @echo '' >&2
- @echo ' ME_GOAHEAD_ACCESS_LOG # Enable request access log (true|false)' >&2
- @echo ' ME_GOAHEAD_CLIENT_CACHE # List of extensions to cache in the client' >&2
- @echo ' ME_GOAHEAD_CLIENT_CACHE_LIFESPAN # Time in seconds to cache in the client' >&2
- @echo ' ME_GOAHEAD_CA_FILE # File of client certificates (path)' >&2
- @echo ' ME_GOAHEAD_CERTIFICATE # Server certificate for SSL (path)' >&2
- @echo ' ME_GOAHEAD_CIPHERS # SSL cipher suite (string)' >&2
- @echo ' ME_GOAHEAD_CGI # Enable the CGI handler (true|false)' >&2
- @echo ' ME_GOAHEAD_CGI_BIN # Directory CGI programs (path)' >&2
- @echo ' ME_GOAHEAD_JAVASCRIPT # Enable the Javascript JST handler (true|false)' >&2
- @echo ' ME_GOAHEAD_KEY # Server private key for SSL (path)' >&2
- @echo ' ME_GOAHEAD_LEGACY # Enable the GoAhead 2.X legacy APIs (true|false)' >&2
- @echo ' ME_GOAHEAD_LIMIT_BUFFER # I/O Buffer size. Also chunk size.' >&2
- @echo ' ME_GOAHEAD_LIMIT_FILENAME # Maximum filename size' >&2
- @echo ' ME_GOAHEAD_LIMIT_HEADER # Maximum HTTP single header size' >&2
- @echo ' ME_GOAHEAD_LIMIT_HEADERS # Maximum HTTP header size' >&2
- @echo ' ME_GOAHEAD_LIMIT_NUM_HEADERS # Maximum number of headers' >&2
- @echo ' ME_GOAHEAD_LIMIT_PASSWORD # Maximum password size' >&2
- @echo ' ME_GOAHEAD_LIMIT_POST # Maximum incoming body size' >&2
- @echo ' ME_GOAHEAD_LIMIT_PUT # Maximum PUT body size ~ 200MB' >&2
- @echo ' ME_GOAHEAD_LIMIT_SESSION_LIFE # Session lifespan in seconds (30 mins)' >&2
- @echo ' ME_GOAHEAD_LIMIT_SESSION_COUNT # Maximum number of sessions to support' >&2
- @echo ' ME_GOAHEAD_LIMIT_STRING # Default string allocation size' >&2
- @echo ' ME_GOAHEAD_LIMIT_TIMEOUT # Request inactivity timeout in seconds' >&2
- @echo ' ME_GOAHEAD_LIMIT_URI # Maximum URI size' >&2
- @echo ' ME_GOAHEAD_LIMIT_UPLOAD # Maximum upload size ~ 200MB' >&2
- @echo ' ME_GOAHEAD_LISTEN # Addresses to listen to (["http://IP:port", ...])' >&2
- @echo ' ME_GOAHEAD_LOGFILE # Default location and level for debug log (path:level)' >&2
- @echo ' ME_GOAHEAD_LOGGING # Enable application logging (true|false)' >&2
- @echo ' ME_GOAHEAD_PAM # Enable Unix Pluggable Auth Module (true|false)' >&2
- @echo ' ME_GOAHEAD_PUT_DIR # Define the directory for file uploaded via HTTP PUT (path)' >&2
- @echo ' ME_GOAHEAD_REALM # Authentication realm (string)' >&2
- @echo ' ME_GOAHEAD_REPLACE_MALLOC # Replace malloc with non-fragmenting allocator (true|false)' >&2
- @echo ' ME_GOAHEAD_SSL # To enable SSL' >&2
- @echo ' ME_GOAHEAD_STATIC # Build with static linking (true|false)' >&2
- @echo ' ME_GOAHEAD_STEALTH # Run in stealth mode. Disable OPTIONS, TRACE (true|false)' >&2
- @echo ' ME_GOAHEAD_TRACING # Enable debug tracing (true|false)' >&2
- @echo ' ME_GOAHEAD_TUNE # Optimize (size|speed|balanced)' >&2
- @echo ' ME_GOAHEAD_UPLOAD # Enable file upload (true|false)' >&2
- @echo ' ME_GOAHEAD_UPLOAD_DIR # Define directory for uploaded files (path)' >&2
- @echo ' ME_COM_MBEDTLS # Enable the mbed TLS stack' >&2
- @echo ' ME_COM_OPENSSL # Enable the OpenSSL SSL stack' >&2
- @echo ' ME_ROM # Build for ROM without a file system' >&2
- @echo ' ME_STACK_SIZE # Define the VxWorks stack size' >&2
- @echo '' >&2
- @echo 'For example, to disable CGI:' >&2
- @echo '' >&2
- @echo ' ME_GOAHEAD_CGI=0 make' >&2
- @echo '' >&2
- @echo 'Other make environment variables:' >&2
- @echo ' ARCH # CPU architecture (x86, x64, ppc, ...)' >&2
- @echo ' OS # Operating system (linux, macosx, windows, vxworks, ...)' >&2
- @echo ' CC # Compiler to use ' >&2
- @echo ' LD # Linker to use' >&2
- @echo ' CONFIG # Output directory for built items. Defaults to OS-ARCH-PROFILE' >&2
- @echo ' CFLAGS # Add compiler options. For example: -Wall' >&2
- @echo ' DEBUG # Set to "debug" for symbols, "release" for optimized builds' >&2
- @echo ' DFLAGS # Add compiler defines. For example: -DCOLOR=blue' >&2
- @echo ' IFLAGS # Add compiler include directories. For example: -I/extra/includes' >&2
- @echo ' LDFLAGS # Add linker options' >&2
- @echo ' LIBPATHS # Add linker library search directories. For example: -L/libraries' >&2
- @echo ' LIBS # Add linker libraries. For example: -lpthreads' >&2
- @echo ' PROFILE # Set to "static" for static linking or "default" for dynamic' >&2
- @echo '' >&2
- @echo 'Use "SHOW=1 make" to show executed commands.' >&2
- @echo '' >&2
|