【wxWidgets】提供一个适合wxWidgets的makefile

最近研究如何使用wxWidgets进行快速应用程序开发的时候,为了方便写了一个makefile,然后扩展了一下。

使用方法如下:

make project
make

make clean
 

解释:
make project 会在当前目录下创建src、obj、src/headers、src/sources,然后将目录下的所有后缀为.cpp的文件移动至src/sources,将所有后缀为.h的文件移动至src/headers;接下来make执行编译过程;make clean会将obj文件夹下的后缀为.o的文件全部删除。


注意:

1.这里使用到了wx-config这个实用程序。如果PATH下面没有的话请添加;如果没有wx-config,请下载。

2.如果是windows系统下,可能需要编译资源文件,可以用windres编译,然后在makefile中添加相关编译命令。

 


###################################################################
#
# This is a makefile that is suitable for wxWidgets
#
# You need to modify some options below and just type 'make' in
# terminal.
#                             ---- created by misskanagi 2013/9/4
###################################################################

#basic configuration and compiler flags
SHELL	 	= /bin/sh
CC    		= gcc
XX		= g++
RES		= windres
DEBUGFLAGS	= -g
RELEASEFLAGS	= -O2 -s
RESOURCEFLAGS	= `wx-config --rcflags`
INCLUDES	= -Isrc/headers/
CXXFLAGS	=  -Wall -Wextra `wx-config --cxxflags` $(INCLUDES)
LIBS		= `wx-config --libs core,base,richtext,adv,html,xml` -s -mwindows
#directory variables
OBJDIR		= obj/
HEADERDIR	= src/headers/
SOURCEDIR	= src/sources/
#sources and objects variables
TARGET		= NumGame
SOURCES		= $(shell echo $(SOURCEDIR)*.cpp)
HEADERS		= $(shell echo $(HEADERDIR)*.h)
OBJECTS		= $(subst $(SOURCEDIR),$(OBJDIR),$(SOURCES:.cpp=.o))




#####################################################################
# WARNING:
# DO NOT MODIFY REST OF THIS FILE UNLESS YOU KOWN WHAT YOU ARE DOING!
#####################################################################

#command
all: $(TARGET)

$(TARGET): $(OBJECTS)
	$(XX) $(CXXFLAGS) $(DEBUGFLAGS) -o $(TARGET) $(OBJECTS) $(LIBS)

release: $(SOURCES) $(HEADERS)
	$(XX) $(CXXFLAGS) $(RELEASEFLAGS) -o $(TARGET) $(SOURCES) $(LIBS)

$(OBJDIR)%.o: $(SOURCEDIR)%.cpp $(HEADERS)
	$(XX) $(CXXFLAGS) $(DEBUGFLAGS) -c -o $@ $<

project: *.h *.cpp
	-mkdir obj
	-mkdir src
	-mkdir src/headers
	-mkdir src/sources
	mv *.h src/headers
	mv *.cpp src/sources

$(TARGET).app:Info.plist $(TARGET) $(TARGET).icns
	-mkdir $(TARGET).app
	-mkdir $(TARGET).app/Contents
	-mkdir $(TARGET).app/Contents/MacOS
	-mkdir $(TARGET).app/Contents/Resources
	cp Info.plist $(TARGET).app/Contents/
	cp $(TARGET) $(TARGET).app/Contents/MacOS/$(TARGET)
	cp $(TARGET).icns $(TARGET).app/Contents/Resources/

.PHONY : all release clean distclean project

clean:
	-rm -f $(TARGET)
	-rm -f $(OBJECTS)

distclean: clean
	-rm -f $(TARGET)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值