#MinGW 5.1.6
.PHONY:clean tidy rebuild
SRCDIR = src
LIBDIR = lib
DOCSDIR = docs
BUILDDIR = build
CC = C:\MinGW\bin\g++.exe
SRCEXT = cpp
DEPEXT = depend
RM = del /f /q
MKDIR = mkdir
RMDIR = rmdir /q /s
FLAGS = -g -Wall -O3 #-save-temps #-fdump-class-hierarchy #-dump_class_hierarchy
LIBPATHS = -L"C:\MingW\lib" -L"${LIBDIR}"
LIBS = #-lopengl32 #-mwindows
SRCT = *.${SRCEXT}
SRCS += ${SRCT}
SRCS += */${SRCT}
SRCS += */*/${SRCT}
SRCS += */*/*/${SRCT}
SRCS += */*/*/*/${SRCT}
SRCS += */*/*/*/*/${SRCT}
SRC = ${wildcard ${addprefix ${SRCDIR}/,${SRCS}}}
OBJ = ${patsubst ${SRCDIR}/%.${SRCEXT},${BUILDDIR}/%.o,${SRC}}
DEP = ${patsubst ${SRCDIR}/%.${SRCEXT},${BUILDDIR}/%.${DEPEXT},${SRC}}
BIN = ${BUILDDIR}/${notdir ${CURDIR}.exe}
build: ${BIN}
rebuild: tidy build
${BIN}: ${OBJ}
@echo make target: ${BIN}
@${CC} ${FLAGS} $^ ${LIBPATHS} ${LIBS} -o $@
prepare:
@echo prepare folders
@if not exist ${BUILDDIR} (${MKDIR} ${BUILDDIR} && @echo make directory: ${BUILDDIR})
@if not exist ${DOCSDIR} (${MKDIR} ${DOCSDIR} && @echo make directory: ${DOCSDIR})
# @if not exist ${subst /,\,${dir ${@}}} (${MKDIR} ${subst /,\,${dir ${@}}} && @echo make directory: ${subst /,\,${dir ${@}}})
@xcopy ${SRCDIR} ${BUILDDIR} /T /E
clean:
@echo remove build directory and docs directory
@if exist ${BUILDDIR} (@${RMDIR} ${BUILDDIR})
@if exist ${DOCSDIR} (@${RMDIR} ${DOCSDIR})
tidy:
@echo tidy dependencies, objects and binaries only
${foreach file,${subst /,\,${OBJ}},@if exist ${file} (${RM} ${file}) &&}@echo on
${foreach file,${subst /,\,${DEP}},@if exist ${file} (${RM} ${file}) &&}@echo on
sinclude ${DEP}
${BUILDDIR}/%.${DEPEXT}:${SRCDIR}/%.${SRCEXT}
@if not exist ${BUILDDIR} (${MKDIR} ${BUILDDIR} && @echo make directory: ${BUILDDIR})
@if not exist ${subst /,\,${dir ${@}}} (${MKDIR} ${subst /,\,${dir ${@}}} && @echo make directory: ${subst /,\,${dir ${@}}})
@echo make dependency for ${patsubst ${SRCDIR}/%.${SRCEXT},${BUILDDIR}/%.o,${<}}
@${CC} -MM -MT ${patsubst ${SRCDIR}/%.${SRCEXT},${BUILDDIR}/%.o,${<}} ${<} > ${@}
@echo @@echo make object: ${patsubst ${SRCDIR}/%.${SRCEXT},${BUILDDIR}/%.o,${<}} >> ${@}
@echo @@$${CC} $${FLAGS} -c -o $$@ $${filter %%.${SRCEXT},$$^^} >> ${@}
分享到:
相关推荐
我写的makefile for mingw + wxWidgets, makefile可作为通用模板,编译C++ wxWidgets GUI 库。另外带一个小例子,用户改makefile的头部就可以完成,资源文件链接,debug, release版本编译,shared 库 非shared 库...
Makefile编写实例: 1.前提是需要安装MInGw——c/c++编译器,不懂的可以私信我哈; 2.本程序是利用bat脚本直接运行...3.makefile为采用通用性规则编写,自动搜索所在目录中的代码,自动编译; 4.适应于编译C++/C代码。
mingw makefile example
支持SDCC编译器的自动编译。使用make或mingw32-make实现目录内全源码自动编译的Makefile。
live555 原来执行“./genMakefile mingw”产生的makefile脱离msys就报缺少libgcc的库,先修改makefile让产生的exe文件可以直接双击运行。
MinGW(Minimalist GNU on Windows),将经典的开源 C语言 编译器 GCC 移植到了 Windows 平台下,并且包含了 Win32API ,因此可以将源代码编译为可在 Windows 中运行的可执行程序。而且还可以使用一些 Windows 不...
MinGW使用MinGW使用
【MinGW安装包】mingw-18.0.exe
mingw离线版mingw离线版mingw离线版mingw离线版mingw离线版
MinGW第一部分(共两部分) MinGW是指只用自由软件来生成纯粹的Win32可执行文件的编译环境,它是Minimalist GNU on Windows的略称。 在网上很难下的,因为我最大上传限制在10M,所以只好分两次上传了。
MinGW是指只用自由软件来生成纯粹的Win32可执行文件的编译环境,它是Minimalist GNU on Windows的略称。详情请参考<http://www.mingw.org>。 这里的“纯粹”是指「使用msvcrt.dll的应用程序」。无法使用MFC ...
3.1:MinGW 是什么? MinGW 提供了一套简单方便的Windows下的基于GCC 程序开发环境。MinGW 收集了一系列免费的Windows 使用的头文件和库文件;同时整合了GNU ( http://www.gnu.org/ )的工具集,特别是GNU 程序开发...
MinGW\var\cache\mingw-get\packages 这个目录下有MinGW Installation Manager下载的安装包,gcc-ada-9.2.0-2-mingw32-bin.tar.xz、gcc-c++-9.2.0-2-mingw32-bin.tar.xz、gcc-core-9.2.0-2-mingw32-bin.tar.xz、gcc-...
如果想节省时间,这是我在Windows下编译好的MINGW64位的opencv2.4.13.6,使用的cmake mingw Makefile方式编译的MINGW64位的opencv2.4.13.6,可以直接在QT(mingw64)版本开发工具内使用。下载后直接解压,将bin文件...
如果想节省时间,这是我在Windows下编译好的MINGW64位的opencv4.1.1,使用的cmake mingw Makefile方式编译的MINGW64位的opencv4.1.1,可以直接在QT5(mingw64)版本开发工具内使用。下载后直接解压,将bin文件添加到...
MinGW.rar 完整安装包,本地化,无需在线下载安装。因为MinGW本身不和windows注册表打交道,所以解压即可使用。 修改系统变量 PATH,增加 %MINGW_PATH%\bin;%MINGW_PATH%\libexec\gcc\mingw32\3.4.5; 增加变量: ...
为了能在32位和64位windows平台VS或VC环境下的C/C++工程能够调用fortran语言编写的科学计算库函数或者自己编写的fortran函数,实现C/C++与fortran的混编,这里采用MinGW软件在windows平台下用unix/linux环境下的GNU ...
2、mingw-runtime-3.9.tar.gz MinGW 的运行支持库模块集合。 3、mingw-utils-0.3.tar.gz MinGW 常用工具集合。 4、binutils-2.15.91-20040904-1.tar.gz MinGW 支持gcc/g++的binutils 集合,如经典的ld 等。 5、gcc-...
MinGW(Minimalist GNU for Windows),又称mingw32,是将GCC编译器和GNU Binutils移植到Win32平台下的产物,包括一系列头文件(Win32API)、库和可执行文件。 GCC支持的语言大多在MinGW也受支持,其中涵盖C、C++、...