# 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 参考模板详解 在 Linux 编译初学者中,Makefile 是一个非常重要的文件,它可以帮助开发者自动化编译和构建过程。今天,我们将详细解释一份完整的 Makefile 参考模板,该模板可以应用于 Linux 编译环境中。...
- `ble_app_template`中的文件通常包括头文件、源文件、配置文件和Makefile,每个文件都有特定的职责,如初始化BLE连接、处理事件、定义服务等。 7. **优化与扩展**: - **自定义服务**:根据实际需求,开发者...
【Makefile】是一种在Linux和类Unix系统中用于自动化构建、编译和链接程序的文本文件。通过Makefile,开发者可以定义一系列规则来控制...在实际开发中,可以根据项目的具体需求对这个通用模板进行适当的调整和扩展。
### 通用Makefile详解 #### 一、引言 在软件开发过程中,特别是涉及大量C语言编程时,Makefile作为一种自动化构建工具,极大地提升了开发效率。一个精心设计的Makefile可以减少编译时间,简化构建过程,并使得项目...
创建ml-app create-ml-app使使用Python在本地启动机器学习项目和处理各种程序包依赖关系变得更加容易。 该名称受启发。 该项目从用户那里提取了pip install和虚拟环境命令。 要使用它,只需派生此存储库并从您的...
标题中的“万能Makefile”是指一个通用性强、易于理解和修改的Makefile模板,适用于大多数C语言项目。描述中提到,这个Makefile经过了测试,可以方便地移植到不同的C语言工程中,并提供了一个QQ群号以供进一步的技术...
Go app模板构建环境这是一个 Go 应用程序的骨架项目,它囊括了我迄今为止学到的最佳构建技术。它使用 Makefile 来驱动构建(软件项目的通用 API),并使用 Dockerfile 来构建 docker 镜像。这仅在 Linux 上测试过,...
ui文档,部分mocha-chai测试/app :CMS前端,使用Vue SSR模板,/admin :CMS管理门户,使用Vue SPA模板/profile :非CMS,使用Vue SPA模板,个人资料模板。 创建您的个人资料的Json文件,并将其应用于所有模板。 /...
5. **config**:配置脚本和模板,用于编译和安装过程。 三、源码学习要点 1. **MkHttp.c/h**:理解HTTP请求和响应的处理流程,学习如何解析HTTP报文头部和主体,以及如何构建响应。 2. **MkConfig.c/h**:深入...
**Makefile模板和配置** 1. **Makefile模板** - App.t:生成发布版程序的makefile。 - Lib.t:创建库文件的makefile。 - Subdirs.t:处理子目录中目标文件的makefile。 - Tmake.conf:包含编译选项和库设置的...
在这个实验中,我们通常会用到几个关键的文件,如`led_dev v3.c`、`led_app.c`以及`Makefile`。 `led_dev v3.c`是LED设备驱动程序的源代码文件,其主要任务是与硬件进行交互,管理LED的电源和信号。在这个文件中,...
此配置文件与之前的示例功能相同,但指定了具体的模板和配置选项,这有助于进一步定制 `Makefile` 的行为。 ### 结语 `tmake` 通过其强大的功能和灵活性,大大简化了 `Makefile` 的管理和生成过程。无论是初学者...
创建/复制您的项目文件夹到 3DS-app-dev 文件夹,然后将 clean.bat、build.bat、app 文件夹和 _Makefile 从 Yeti3DS 项目文件夹复制到您的项目文件夹中。 首次设置时,也将 3DSBannerMaker 文件夹复制到 devkitpro ...
在这个目录中,你需要添加你的应用程序源代码,通常包括`src`目录下的C/C++源文件,`Makefile`用于编译控制,以及可能的`app.info`文件,用于描述应用的基本信息。 4. **配置应用属性**:在`<PetaLinux_project>/...
创建模板后,您可以使用stack进行构建,也可以使用提供的Makefile 。 您的API定义位于YourApp.API模块中,而应用程序逻辑位于YourApp.Server.Handlers模块中。 特征 您通过此模板获得的信息: 使用进行 使用...
NimMakefile是一个针对Nim编程语言的Makefile模板,旨在简化Nim项目的构建过程。Nim是一种静态类型的、编译型的、命令式的、快速的、系统级的编程语言,设计目标是高效率、优雅的语法和跨平台兼容性。在Nim项目中,...
这是用于simple-information-store-app的示例模板-以下是对我们为您生成的内容的简要说明: . ├── Makefile < -- Make to automate build ├── README.md < -- This instructions file ├── hello-...
- **Makefile**:在Android开发中,Makefile是编译项目的重要工具,用于定义编译规则和目标。 - **Android.mk** 和 **build.gradle**:Android.mk 是NDK编译的配置文件,build.gradle 则是Android Studio中Gradle...
TEMPLATE 系统变量用于指定模板类型,告诉 qmake 生成哪种类型的 Makefile。例如,TEMPLATE = app 指定生成一个应用程序的 Makefile,TEMPLATE = lib 指定生成一个库的 Makefile。TEMPLATE 系统变量可以指定为以下...