Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
M
mongoose
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
mongoose
Commits
2b87f909
Commit
2b87f909
authored
Jan 25, 2013
by
Sergey Lyubka
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Makefile refactored
parent
ec7d0b1a
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
68 additions
and
81 deletions
+68
-81
Makefile
Makefile
+68
-81
No files found.
Makefile
View file @
2b87f909
# This file is part of Mongoose project, http://code.google.com/p/mongoose
# $Id: Makefile 473 2009-09-02 11:20:06Z valenok $
PROG
=
mongoose
all
:
@
echo
"make (linux|bsd|solaris|mac|windows|mingw|cygwin)"
# Possible COPT values: (in brackets are rough numbers for 'gcc -O2' on i386)
# This Makefile is part of Mongoose web server project,
# https://github.com/valenok/mongoose
#
# Example custom build:
# COPT="-g -O0 -DNO_SSL_DL -DUSE_LUA -llua -lcrypto -lssl" make linux
#
# Flags are:
# -DHAVE_MD5 - use system md5 library (-2kb)
# -DNDEBUG - strip off all debug code (-5kb)
# -DDEBUG - build debug version (very noisy) (+7kb)
...
...
@@ -18,18 +16,66 @@ all:
# -DCRYPTO_LIB=\"libcrypto.so.<version>\" - use system versioned CRYPTO so
# -DUSE_LUA - embed Lua in Mongoose (+100kb)
##########################################################################
### UNIX build: linux, bsd, mac, rtems
##########################################################################
PROG
=
mongoose
CFLAGS
=
-std
=
c99
-O2
-W
-Wall
-pedantic
-pthread
$(COPT)
# To build with Lua, download and unzip Lua 5.2.1 source code into the
# mongoose directory, and then add $(LUA_FLAGS) to CFLAGS below
LUA
=
lua-5.2.1/src
LUA_FLAGS
=
-I
$(LUA)
-L
$(LUA)
-llua
-lm
LUA_SOURCES
=
$(LUA)
/lapi.c
$(LUA)
/lcode.c
$(LUA)
/lctype.c
\
$(LUA)
/ldebug.c
$(LUA)
/ldo.c
$(LUA)
/ldump.c
\
$(LUA)
/lfunc.c
$(LUA)
/lgc.c
$(LUA)
/llex.c
\
$(LUA)
/lmem.c
$(LUA)
/lobject.c
$(LUA)
/lopcodes.c
\
$(LUA)
/lparser.c
$(LUA)
/lstate.c
$(LUA)
/lstring.c
\
$(LUA)
/ltable.c
$(LUA)
/ltm.c
$(LUA)
/lundump.c
\
$(LUA)
/lvm.c
$(LUA)
/lzio.c
$(LUA)
/lauxlib.c
\
$(LUA)
/lbaselib.c
$(LUA)
/lbitlib.c
$(LUA)
/lcorolib.c
\
$(LUA)
/ldblib.c
$(LUA)
/liolib.c
$(LUA)
/lmathlib.c
\
$(LUA)
/loslib.c
$(LUA)
/lstrlib.c
$(LUA)
/ltablib.c
\
$(LUA)
/loadlib.c
$(LUA)
/linit.c
LUA_OBJECTS
=
$
(
LUA_SOURCES:%.c
=
%.o
)
CFLAGS
=
-std
=
c99
-O2
-W
-Wall
-pedantic
-pthread
$(COPT)
LIB
=
lib
$(PROG)
.so
$(MONGOOSE_LIB_SUFFIX)
# Using Visual Studio 6.0. To build Mongoose:
# Set MSVC variable below to where VS 6.0 is installed on your system
# Run "PATH_TO_VC6\bin\nmake windows"
MSVC
=
e:/vc6
DBG
=
/Zi /Od
#DBG = /DNDEBUG /O1
CL
=
$(MSVC)
/bin/cl /MD /TC /nologo
$(DBG)
/Gz /W3 /DNO_SSL_DL
\
/I
$(MSVC)
/include /I
$(LUA)
/I. /I
$(YASSL)
/I
$(YASSL)
/cyassl /GA
MSLIB
=
/link /incremental:no /libpath:
$(MSVC)
/lib /machine:IX86
\
user32.lib shell32.lib comdlg32.lib ws2_32.lib advapi32.lib
\
cyassl.lib lua.lib
# Stock windows binary builds with Lua and YASSL library.
YASSL
=
e:/cyassl-2.4.6
#YASSL = ~/stuff/cyassl-2.4.6
YASSL_FLAGS
=
-I
$(YASSL)
-I
$(YASSL)
/cyassl
\
-D
_LIB
-D
OPENSSL_EXTRA
-D
HAVE_ERRNO_H
\
-D
HAVE_GETHOSTBYNAME
-D
HAVE_INET_NTOA
-D
HAVE_LIMITS_H
\
-D
HAVE_MEMSET
-D
HAVE_SOCKET
-D
HAVE_STDDEF_H
-D
HAVE_STDLIB_H
\
-D
HAVE_STRING_H
-D
HAVE_SYS_STAT_H
-D
HAVE_SYS_TYPES_H
YASSL_SOURCES
=
\
$(YASSL)
/src/internal.c
$(YASSL)
/src/io.c
$(YASSL)
/src/keys.c
\
$(YASSL)
/src/ssl.c
$(YASSL)
/src/tls.c
$(YASSL)
/ctaocrypt/src/hmac.c
\
$(YASSL)
/ctaocrypt/src/random.c
$(YASSL)
/ctaocrypt/src/sha.c
\
$(YASSL)
/ctaocrypt/src/sha256.c
$(YASSL)
/ctaocrypt/src/logging.c
\
$(YASSL)
/ctaocrypt/src/error.c
$(YASSL)
/ctaocrypt/src/rsa.c
\
$(YASSL)
/ctaocrypt/src/des3.c
$(YASSL)
/ctaocrypt/src/asn.c
\
$(YASSL)
/ctaocrypt/src/coding.c
$(YASSL)
/ctaocrypt/src/arc4.c
\
$(YASSL)
/ctaocrypt/src/md4.c
$(YASSL)
/ctaocrypt/src/md5.c
\
$(YASSL)
/ctaocrypt/src/dh.c
$(YASSL)
/ctaocrypt/src/dsa.c
\
$(YASSL)
/ctaocrypt/src/pwdbased.c
$(YASSL)
/ctaocrypt/src/aes.c
\
$(YASSL)
/ctaocrypt/src/md2.c
$(YASSL)
/ctaocrypt/src/ripemd.c
\
$(YASSL)
/ctaocrypt/src/sha512.c
$(YASSL)
/src/sniffer.c
\
$(YASSL)
/ctaocrypt/src/rabbit.c
$(YASSL)
/ctaocrypt/src/misc.c
\
$(YASSL)
/ctaocrypt/src/tfm.c
$(YASSL)
/ctaocrypt/src/integer.c
\
$(YASSL)
/ctaocrypt/src/ecc.c
$(YASSL)
/src/ocsp.c
$(YASSL)
/src/crl.c
\
$(YASSL)
/ctaocrypt/src/hc128.c
$(YASSL)
/ctaocrypt/src/memory.c
all
:
@
echo
"make (linux|bsd|solaris|mac|windows|mingw|cygwin)"
# Make sure that the compiler flags come last in the compilation string.
# If not so, this can break some on some Linux distros which use
...
...
@@ -42,6 +88,9 @@ mac: bsd
bsd
:
$(CC)
mongoose.c main.c
-o
$(PROG)
$(CFLAGS)
bsd_yassl
:
$(CC)
mongoose.c main.c
-o
$(PROG)
$(CFLAGS)
$(YASSL_SOURCES)
$(YASSL_FLAGS)
-DNO_SSL_DL
solaris
:
$(CC)
mongoose.c main.c
-lnsl
-lsocket
-o
$(PROG)
$(CFLAGS)
...
...
@@ -49,68 +98,19 @@ cocoa:
$(CC)
mongoose.c main.c
-DUSE_COCOA
$(CFLAGS)
-framework
Cocoa
-ObjC
-arch
i386
-arch
x86_64
-o
Mongoose
V
=
`
perl
-lne
'/define\s+MONGOOSE_VERSION\s+"(\S+)"/ and print $$1'
mongoose.c
`
;
DIR
=
dmg/Mongoose.app
&&
rm
-rf
$$
DIR
&&
mkdir
-p
$$
DIR/Contents/
{
MacOS,Resources
}
&&
install
-m
644 build/mongoose_
*
.png
$$
DIR/Contents/Resources/
&&
install
-m
644 build/Info.plist
$$
DIR/Contents/
&&
install
-m
755 Mongoose
$$
DIR/Contents/MacOS/
&&
ln
-fs
/Applications dmg/
;
hdiutil create Mongoose_
$$
V.dmg
-volname
"Mongoose
$$
V"
-srcfolder
dmg
-ov
#; rm -rf dmg
u
nix_unit_test
:
$(LUA_OBJECTS)
u
:
$(LUA_OBJECTS)
$(CC)
test
/unit_test.c
-o
unit_test
-I
.
$(LUA_FLAGS)
$(CFLAGS)
-g
-O0
./unit_test
##########################################################################
### WINDOWS build: Using Visual Studio or Mingw
##########################################################################
# Using Visual Studio 6.0. To build Mongoose:
# o Set MSVC variable below to where VS 6.0 is installed on your system
# o Run "PATH_TO_VC6\bin\nmake windows"
MSVC
=
e:/vc6
CYA
=
e:/cyassl-2.0.0rc2
#DBG = /Zi /DDEBUG /Od
DBG
=
/DNDEBUG /O1
CL
=
$(MSVC)
/bin/cl /MD /TC /nologo
$(DBG)
/Gz /W3 /DNO_SSL_DL
\
/I
$(MSVC)
/include /I
$(LUA)
/I. /GA
MSLIB
=
/link /incremental:no /libpath:
$(MSVC)
/lib /machine:IX86
\
user32.lib shell32.lib comdlg32.lib ws2_32.lib advapi32.lib
\
cyassl.lib lua.lib
CYAFL
=
/c /I
$(CYA)
/include
-I
$(CYA)
/include/openssl /I
$(MSVC)
/INCLUDE
\
/I
$(CYA)
/ctaocrypt/include /D _LIB /D OPENSSL_EXTRA
LUA_SOURCES
=
$(LUA)
/lapi.c
$(LUA)
/lcode.c
$(LUA)
/lctype.c
\
$(LUA)
/ldebug.c
$(LUA)
/ldo.c
$(LUA)
/ldump.c
\
$(LUA)
/lfunc.c
$(LUA)
/lgc.c
$(LUA)
/llex.c
\
$(LUA)
/lmem.c
$(LUA)
/lobject.c
$(LUA)
/lopcodes.c
\
$(LUA)
/lparser.c
$(LUA)
/lstate.c
$(LUA)
/lstring.c
\
$(LUA)
/ltable.c
$(LUA)
/ltm.c
$(LUA)
/lundump.c
\
$(LUA)
/lvm.c
$(LUA)
/lzio.c
$(LUA)
/lauxlib.c
\
$(LUA)
/lbaselib.c
$(LUA)
/lbitlib.c
$(LUA)
/lcorolib.c
\
$(LUA)
/ldblib.c
$(LUA)
/liolib.c
$(LUA)
/lmathlib.c
\
$(LUA)
/loslib.c
$(LUA)
/lstrlib.c
$(LUA)
/ltablib.c
\
$(LUA)
/loadlib.c
$(LUA)
/linit.c
LUA_OBJECTS
=
$
(
LUA_SOURCES:%.c
=
%.o
)
CYA_SOURCES
=
$(CYA)
/src/cyassl_int.c
$(CYA)
/src/cyassl_io.c
\
$(CYA)
/src/keys.c
$(CYA)
/src/tls.c
$(CYA)
/src/ssl.c
\
$(CYA)
/ctaocrypt/src/aes.c
$(CYA)
/ctaocrypt/src/arc4.c
\
$(CYA)
/ctaocrypt/src/asn.c
$(CYA)
/ctaocrypt/src/coding.c
\
$(CYA)
/ctaocrypt/src/ctc_asm.c
$(CYA)
/ctaocrypt/src/ctc_misc.c
\
$(CYA)
/ctaocrypt/src/cyassl_memory.c
$(CYA)
/ctaocrypt/src/des3.c
\
$(CYA)
/ctaocrypt/src/dh.c
$(CYA)
/ctaocrypt/src/dsa.c
\
$(CYA)
/ctaocrypt/src/ecc.c
$(CYA)
/ctaocrypt/src/hc128.c
\
$(CYA)
/ctaocrypt/src/hmac.c
$(CYA)
/ctaocrypt/src/integer.c
\
$(CYA)
/ctaocrypt/src/md4.c
$(CYA)
/ctaocrypt/src/md5.c
\
$(CYA)
/ctaocrypt/src/pwdbased.c
$(CYA)
/ctaocrypt/src/rabbit.c
\
$(CYA)
/ctaocrypt/src/random.c
$(CYA)
/ctaocrypt/src/ripemd.c
\
$(CYA)
/ctaocrypt/src/rsa.c
$(CYA)
/ctaocrypt/src/sha.c
\
$(CYA)
/ctaocrypt/src/sha256.c
$(CYA)
/ctaocrypt/src/sha512.c
\
$(CYA)
/ctaocrypt/src/tfm.c
cyassl.lib
:
$(CL)
/
Fo
$(CYA)
/
$(CYA_SOURCES)
$(CYAFL
)
$(DEF)
$(MSVC)
/bin/lib
$(
CYA
)
/
*
.obj /out:
$@
$(CL)
/
c /Fo
$(YASSL)
/
$(YASSL_SOURCES)
$(YASSL_FLAGS
)
$(DEF)
$(MSVC)
/bin/lib
$(
YASSL
)
/
*
.obj /out:
$@
lua.lib
:
$(CL)
/c /Fo
$(LUA)
/
$(LUA_SOURCES)
$(MSVC)
/bin/lib
$
(
LUA_SOURCES:%.c
=
%.obj
)
/out:
$@
w
indows_unit_test
:
cyassl.lib lua.lib
w
:
cyassl.lib lua.lib
$(CL)
test
/unit_test.c
$(MSLIB)
/out:unit_test.exe
./unit_test.exe
...
...
@@ -118,13 +118,11 @@ windows: cyassl.lib lua.lib
$(MSVC)
/bin/rc build
\r
es.rc
$(CL)
main.c mongoose.c /DUSE_LUA
$(MSLIB)
build
\r
es.res
\
/out:
$(PROG)
.exe /subsystem:windows
# $(CL) mongoose.c /GD $(LINK) /DLL /DEF:build\dll.def /out:$(PROG).dll
# Build for Windows under MinGW
#MINGWDBG= -DDEBUG -O0 -ggdb
MINGWDBG
=
-DNDEBUG
-Os
MINGWOPT
=
-W
-Wall
-mthreads
-Wl
,--subsystem,console
$(MINGWDBG)
-DHAVE_STDINT
$(GCC_WARNINGS)
$(COPT)
#MINGWOPT= -W -Wall -mthreads -Wl,--subsystem,windows $(MINGWDBG) -DHAVE_STDINT $(GCC_WARNINGS) $(COPT)
mingw
:
windres build
\r
es.rc build
\r
es.o
$(CC)
$(MINGWOPT)
mongoose.c
-lws2_32
\
...
...
@@ -143,17 +141,6 @@ cygwin:
$(CC)
$(CYGWINOPT)
-Ibuild
mongoose.c main.c ./build/res.o
\
-lws2_32
-ladvapi32
-o
$(PROG)
.exe
##########################################################################
### Manuals, cleanup, test, release
##########################################################################
man
:
groff
-man
-T
ascii mongoose.1 | col
-b
>
mongoose.txt
groff
-man
-T
ascii mongoose.1 | less
# "TEST=unit make test" - perform unit test only
# "TEST=embedded" - test embedded API by building and testing test/embed.c
# "TEST=basic_tests" - perform basic tests only (no CGI, SSI..)
tests
:
perl
test
/test.pl
$(TEST)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment