`

app makefile 模板

阅读更多
# Makefile for iPhone Application for Xcode gcc compiler (SDK Headers)

IPHONE_IP=192.168.1.115

DARWINVERSION=10
GCCVERSION=4.2.1
SDKVERSION=3.1
ENVP=IPHONEOS_DEPLOYMENT_TARGET=3.0

PROJECTNAME=iColorCall
APPFOLDER=$(PROJECTNAME).app
INSTALLFOLDER=$(PROJECTNAME).app

SDK=/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS$(SDKVERSION).sdk

CC=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin$(DARWINVERSION)-gcc-$(GCCVERSION)
CPP=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin$(DARWINVERSION)-g++-$(GCCVERSION)
LD=$(CC)

LDFLAGS += -lobjc \
			-ObjC++ \
			-fobjc-exceptions \
			-march=armv6 \
			-mcpu=arm1176jzf-s \
			-fobjc-call-cxx-cdtors \
			-multiply_defined suppress \
			-framework CoreFoundation \
			-framework Foundation \
			-framework UIKit \
			-framework CoreGraphics \
			-framework AddressBookUI \
			-framework AddressBook \
			-framework QuartzCore \
			-framework OpenGLES \
			-framework CoreTelephony \
			-L"$(SDK)/usr/lib" \
			-F"$(SDK)/System/Library/Frameworks" \
			-F"$(SDK)/System/Library/PrivateFrameworks"


CFLAGS += -I"/Developer/Platforms/iPhoneOS.platform/Developer/usr/lib/gcc/arm-apple-darwin$(DARWINVERSION)/(GCCVERSION)/include/" \
			-I"$(SDK)/usr/include" \
			-I"/Developer/Platforms/iPhoneOS.platform/Developer/usr/include/" \
			-F"$(SDK)/System/Library/Frameworks" \
			-F"$(SDK)/System/Library/PrivateFrameworks" \
			-I./Classes \
			-I./Classes/Glgif \
			-I./Classes/Engine \
			-march=armv6 \
			-mcpu=arm1176jzf-s \
			-DDEBUG -std=c99 \
			-Diphoneos_version_min=3.0 \
			-DTARGET_OS_IPHONE \
			-DSP3 \
			-DLOG_APP_DEBUG_ENABLE \
			-DHEX_OUT_ENABLE
			#-DWINKS_LONG_SOCKET
			#-DWINKS_SOCKET_WRITE_CATCH
			#-DIPHONE_GIF_PREVIEW_TEST
			#-DTEST_STATIC_IMG_PREVIEW

CPPFLAGS=$CFLAGS

BUILDDIR=./build/$(SDKVERSION)
SRCDIR=./Classes
SRCDIR2=./Classes/Engine
SRCDIR3=./Classes/Glgif
RESDIR=./Resources

OBJS=$(patsubst %.m,%.o,$(wildcard $(SRCDIR2)/*.m)) \
	$(patsubst %.c,%.o,$(wildcard $(SRCDIR2)/*.c)) \
	$(patsubst %.cpp,%.o,$(wildcard $(SRCDIR2)/*.cpp)) \
	$(patsubst %.m,%.o,$(wildcard $(SRCDIR)/*.m)) \
	$(patsubst %.c,%.o,$(wildcard $(SRCDIR)/*.c)) \
	$(patsubst %.cpp,%.o,$(wildcard $(SRCDIR)/*.cpp)) \
	$(patsubst %.mm,%.o,$(wildcard $(SRCDIR)/*.mm)) \
	$(patsubst %.m,%.o,$(wildcard $(SRCDIR3)/*.m)) \
	$(patsubst %.c,%.o,$(wildcard $(SRCDIR3)/*.c)) \
	$(patsubst %.cpp,%.o,$(wildcard $(SRCDIR3)/*.cpp)) \
	$(patsubst %.m,%.o,$(wildcard *.m))

PCH=$(wildcard *.pch)
RESOURCES=$(wildcard $(RESDIR)/*)
NIBS=$(patsubst %.xib,%.nib,$(wildcard *.xib))

all:	dist

$(PROJECTNAME):	$(OBJS)
	$(LD) $(LDFLAGS) -o $@ $^ 

%.o:	%.m
	$(ENVP) $(CC) -c $(CFLAGS) $< -o $@

%.o:	%.c
	$(ENVP) $(CC) -c $(CFLAGS) $< -o $@

%.o:	%.cpp
	$(ENVP) $(CPP) -c $(CPPFLAGS) $< -o $@

%.o:	%.mm
	$(ENVP) $(CC) -c $(CFLAGS) $< -o $@

%.nib:	%.xib
	ibtool $< --compile $@

dist:	$(PROJECTNAME) $(NIBS)
	rm -rf $(BUILDDIR)
	mkdir -p $(BUILDDIR)/$(APPFOLDER)
	cp -r $(RESOURCES) $(BUILDDIR)/$(APPFOLDER)
	cp Info.plist $(BUILDDIR)/$(APPFOLDER)/Info.plist
	@echo "APPL????" > $(BUILDDIR)/$(APPFOLDER)/PkgInfo
	cp -r English.lproj $(BUILDDIR)/$(APPFOLDER)/English.lproj/
	cp -r zh_CN.lproj $(BUILDDIR)/$(APPFOLDER)/zh_CN.lproj/
	cp -r zh_HK.lproj $(BUILDDIR)/$(APPFOLDER)/zh_HK.lproj/
	rm -rf $(BUILDDIR)/$(APPFOLDER)/English.lproj/.svn
	rm -rf $(BUILDDIR)/$(APPFOLDER)/zh_CN.lproj/.svn
	rm -rf $(BUILDDIR)/$(APPFOLDER)/zh_HK.lproj/.svn
	mv $(NIBS) $(BUILDDIR)/$(APPFOLDER)
	export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate; ./ldid_intel -S $(PROJECTNAME)
	mv $(PROJECTNAME) $(BUILDDIR)/$(APPFOLDER)

installapp: uninstallapp
	#只上传程序不上传资源, 节省安装时间
	scp -r $(BUILDDIR)/$(APPFOLDER)/$(PROJECTNAME) root@$(IPHONE_IP):/Applications/$(INSTALLFOLDER)/$(PROJECTNAME)
	ssh root@$(IPHONE_IP) 'killall SpringBoard'

uninstallapp: 
	#只删除程序
	ssh root@$(IPHONE_IP) 'rm -fr /Applications/$(INSTALLFOLDER)/$(PROJECTNAME)'

install: uninstall	
	#ssh root@$(IPHONE_IP) 'rm -f /private/var/mobile/Library/Caches/com.apple.mobile.installation.plist'
	#上传程序及资源
	scp -r $(BUILDDIR)/$(APPFOLDER) root@$(IPHONE_IP):/Applications/$(INSTALLFOLDER)
	ssh root@$(IPHONE_IP) 'killall SpringBoard'

uninstall:	
	#删除程序及资源
	ssh root@$(IPHONE_IP) 'rm -fr /Applications/$(INSTALLFOLDER)'

install_respring:
	scp respring_arm root@$(IPHONE_IP):/usr/bin/respring

clean:
	@rm -f $(SRCDIR)/*.o *.o
	@rm -f $(SRCDIR2)/*.o *.o
	@rm -f $(SRCDIR3)/*.o *.o
	@rm -rf $(BUILDDIR)
	@rm -f $(PROJECTNAME)
	
log:
	scp root@$(IPHONE_IP):/var/mobile/appLog ~/Desktop/appLog/appLog

clearlog:
	ssh root@$(IPHONE_IP) 'rm -fr /var/mobile/appLog'

 

分享到:
评论

相关推荐

    一套的实用完整Makefile参考模板

    Makefile 参考模板详解 在 Linux 编译初学者中,Makefile 是一个非常重要的文件,它可以帮助开发者自动化编译和构建过程。今天,我们将详细解释一份完整的 Makefile 参考模板,该模板可以应用于 Linux 编译环境中。...

    ble_app_template_nordic模板_ble_app_

    - `ble_app_template`中的文件通常包括头文件、源文件、配置文件和Makefile,每个文件都有特定的职责,如初始化BLE连接、处理事件、定义服务等。 7. **优化与扩展**: - **自定义服务**:根据实际需求,开发者...

    一个通用Makefile的编写

    【Makefile】是一种在Linux和类Unix系统中用于自动化构建、编译和链接程序的文本文件。通过Makefile,开发者可以定义一系列规则来控制...在实际开发中,可以根据项目的具体需求对这个通用模板进行适当的调整和扩展。

    一个通用的Makefile

    ### 通用Makefile详解 #### 一、引言 在软件开发过程中,特别是涉及大量C语言编程时,Makefile作为一种自动化构建工具,极大地提升了开发效率。一个精心设计的Makefile可以减少编译时间,简化构建过程,并使得项目...

    create-ml-app:适用于Python的ML项目的模板Makefile

    创建ml-app create-ml-app使使用Python在本地启动机器学习项目和处理各种程序包依赖关系变得更加容易。 该名称受启发。 该项目从用户那里提取了pip install和虚拟环境命令。 要使用它,只需派生此存储库并从您的...

    万能Makefile(简化版,更如意看懂,便于学习)

    标题中的“万能Makefile”是指一个通用性强、易于理解和修改的Makefile模板,适用于大多数C语言项目。描述中提到,这个Makefile经过了测试,可以方便地移植到不同的C语言工程中,并提供了一个QQ群号以供进一步的技术...

    Go 项目的 Makefile,Dockerfile 示例 .zip

    Go app模板构建环境这是一个 Go 应用程序的骨架项目,它囊括了我迄今为止学到的最佳构建技术。它使用 Makefile 来驱动构建(软件项目的通用 API),并使用 Dockerfile 来构建 docker 镜像。这仅在 Linux 上测试过,...

    arkcms:个人网站arknodejs.com的资源,包括3个项目模板(2个原始模板),服务器配置和脚本。个人网站源码arknodejs.com,包括3个项目模板,简历模板,服务端nginx设置和makefile部署脚本

    ui文档,部分mocha-chai测试/app :CMS前端,使用Vue SSR模板,/admin :CMS管理门户,使用Vue SPA模板/profile :非CMS,使用Vue SPA模板,个人资料模板。 创建您的个人资料的Json文件,并将其应用于所有模板。 /...

    appweb-src-3.2.3-3.tar.gz

    5. **config**:配置脚本和模板,用于编译和安装过程。 三、源码学习要点 1. **MkHttp.c/h**:理解HTTP请求和响应的处理流程,学习如何解析HTTP报文头部和主体,以及如何构建响应。 2. **MkConfig.c/h**:深入...

    tmake使用指南

    **Makefile模板和配置** 1. **Makefile模板** - App.t:生成发布版程序的makefile。 - Lib.t:创建库文件的makefile。 - Subdirs.t:处理子目录中目标文件的makefile。 - Tmake.conf:包含编译选项和库设置的...

    led驱动点灯实验模板

    在这个实验中,我们通常会用到几个关键的文件,如`led_dev v3.c`、`led_app.c`以及`Makefile`。 `led_dev v3.c`是LED设备驱动程序的源代码文件,其主要任务是与硬件进行交互,管理LED的电源和信号。在这个文件中,...

    tmake 使用说明

    此配置文件与之前的示例功能相同,但指定了具体的模板和配置选项,这有助于进一步定制 `Makefile` 的行为。 ### 结语 `tmake` 通过其强大的功能和灵活性,大大简化了 `Makefile` 的管理和生成过程。无论是初学者...

    3DS-app-dev:用于为 3DS 构建 3DS 和 CIA 文件的模板

    创建/复制您的项目文件夹到 3DS-app-dev 文件夹,然后将 clean.bat、build.bat、app 文件夹和 _Makefile 从 Yeti3DS 项目文件夹复制到您的项目文件夹中。 首次设置时,也将 3DSBannerMaker 文件夹复制到 devkitpro ...

    文档介绍petalinux创建app的指令

    在这个目录中,你需要添加你的应用程序源代码,通常包括`src`目录下的C/C++源文件,`Makefile`用于编译控制,以及可能的`app.info`文件,用于描述应用的基本信息。 4. **配置应用属性**:在`&lt;PetaLinux_project&gt;/...

    servant-template:Servant项目的Cookiecutter模板

    创建模板后,您可以使用stack进行构建,也可以使用提供的Makefile 。 您的API定义位于YourApp.API模块中,而应用程序逻辑位于YourApp.Server.Handlers模块中。 特征 您通过此模板获得的信息: 使用进行 使用...

    NimMakefile:一个Makefile,打算将其子化到Nim项目中以处理构建

    NimMakefile是一个针对Nim编程语言的Makefile模板,旨在简化Nim项目的构建过程。Nim是一种静态类型的、编译型的、命令式的、快速的、系统级的编程语言,设计目标是高效率、优雅的语法和跨平台兼容性。在Nim项目中,...

    simple-information-store-app

    这是用于simple-information-store-app的示例模板-以下是对我们为您生成的内容的简要说明: . ├── Makefile &lt; -- Make to automate build ├── README.md &lt; -- This instructions file ├── hello-...

    Android开发系统shell常用脚本

    - **Makefile**:在Android开发中,Makefile是编译项目的重要工具,用于定义编译规则和目标。 - **Android.mk** 和 **build.gradle**:Android.mk 是NDK编译的配置文件,build.gradle 则是Android Studio中Gradle...

    QT中pro文件使用的系统变量的说明

    TEMPLATE 系统变量用于指定模板类型,告诉 qmake 生成哪种类型的 Makefile。例如,TEMPLATE = app 指定生成一个应用程序的 Makefile,TEMPLATE = lib 指定生成一个库的 Makefile。TEMPLATE 系统变量可以指定为以下...

Global site tag (gtag.js) - Google Analytics