谈笑斋 发表于 2012-12-19 22:15:40

iphone JB开发小记(五)theos的makefile

<div id="cnblogs_post_body"> theos 是初期ios插件开发者经常使用的工具,现在被集成在iosOpenDev的logos所实现,不需要再自己写makefile来实现
程序的自动编译。不过这里还是要简单的介绍一下如何写一个插件的makefile,这样更有利于理解编译机制.
以下是一个我自己工程中用到的makefile:
<div class="cnblogs_code">1 #2 # Use this makefile to compile service project.3 # When change SDK or add new files ,re-edit values below.4 # zhj5 # 2012-07-176 # txtw7 #8 9 export THEOS=/opt/theos/ 10 export SDKVERSION=5.1 11 export THEOS_DEVICE_IP=10.0.2.3 12 #192.168.1.157 13 #10.0.2.2 14 export CURRENT_VERSION = 1104 15 16 include theos/makefiles/common.mk 17 18 TWEAK_NAME = service 19 20 RESOURCE_DIR = Resources 21 22 DEBUG = 1 23 24 #SUBPROJECTS=servicePreferences 25 26 #编译单元 27 # 28 # 29 30 31 #编译 ----------------------------ASIHTTPRequest-------------------- 32 service_FILES += ASIHTTPRequest/ASIAuthenticationDialog.m 33 service_FILES += ASIHTTPRequest/ASIDownloadCache.m 34 service_FILES += ASIHTTPRequest/ASIFormDataRequest.m 35 service_FILES += ASIHTTPRequest/ASIHTTPRequest.m 36 service_FILES += ASIHTTPRequest/ASIInputStream.m 37 service_FILES += ASIHTTPRequest/ASINetworkQueue.m 38 service_FILES += ASIHTTPRequest/Reachability.m 39 40 #编译 ----------------------------Encoder--------------------------- 41 service_FILES += Encoder/CrypHelper.m 42 service_FILES += Encoder/GTMBase64.m 43 service_FILES += Encoder/NSData+Base64.m 44 service_FILES += Encoder/NSString+MD5Addition.m 45 service_FILES += Encoder/UIDevice+IdentifierAddition.m 46 47 #编译 ----------------------------TBXML----------------------------- 48 service_FILES += TBXML/NSDataAdditions.m 49 service_FILES += TBXML/TBXML.m 50 51 #编译 ----------------------------Regex----------------------------- 52 service_FILES += Regex/RegexKitLite.m 53 54 #编译 ----------------------------Constant-------------------------- 55 service_FILES += Constant/Constant.m 56 service_FILES += Constant/UserDefaults.m 57 58 #编译 ----------------------------SOAP----------------------------- 59 service_FILES += SOAP/Head.m 60 service_FILES += SOAP/Body.m 61 62 #编译 ----------------------------MsgService----------------------------- 63 service_FILES += MsgService/MsgService.m 64 service_FILES += MsgService/MessageInfo.m 65 service_FILES += MsgService/Msgs/NetBrain.m 66 service_FILES += MsgService/Msgs/KeepAliveReturnMsg.m 67 service_FILES += MsgService/Msgs/DevBindReturnMsg.m 68 service_FILES += MsgService/Msgs/FamilyPhoneMsg.m 69 service_FILES += MsgService/Msgs/LocationMsg.m 70 71 #编译 ----------------------------ParseXML----------------------------- 72 service_FILES += ParseXML/ParseXML.m 73 74 75 #编译 ----------------------------Command--------------------------------- 76 service_FILES += Command/TxtwCommand.m 77 78 #编译 ----------------------------BaiduMap--------------------------------- 79 service_FILES += BaiduMap/MapPointAnnotion.m 80 81 #编译 ----------------------------service----------------------------- 82 service_FILES += service/service.mm 83 service_FILES += Tweak.xm 84 85 86 #连接单元 87 # 88 #连接 ----------------------------framework-------------------------- 89 service_FRAMEWORKS = Foundation UIKit QuartzCore Foundation CoreFoundation CoreGraphicsMobileCoreServices 90 service_FRAMEWORKS += SystemConfigurationCFNetwork CoreTelephony CoreLocation MapKit 91 92 93 #连接 ----------------------------dylib------------------------------ 94 service_LDFLAGS = -lxml2 -lz -licucore -lgcc -lgcc_eh -lstdc++ 95 service_LDFLAGS += -L./BaiduMap/inc -R./BaiduMap/inc/ -lbaidumapapi 96 97 #编译器 ---------------------------------------------------------- 98 #service_CFLAGS += -std=c99 99 #service_CFLAGS += -all_load100 101 #资源文件 ----------------------------------------------------------102 internal-package::103    ifneq ($(wildcard $(RESOURCE_DIR)/*.png), )104     mkdir -p $(THEOS_STAGING_DIR)/Library/PreferenceLoader/Preferences/$(TWEAK_NAME)105     cp $(RESOURCE_DIR)/*.png $(THEOS_STAGING_DIR)/Library/PreferenceLoader/Preferences/$(TWEAK_NAME)/106    endif107    ifneq ($(wildcard $(RESOURCE_DIR)/*.lproj), )108     mkdir -p $(THEOS_STAGING_DIR)/Library/PreferenceLoader/Preferences/$(TWEAK_NAME)109     rsync -avC $(RESOURCE_DIR)/*.lproj $(THEOS_STAGING_DIR)/Library/PreferenceLoader/Preferences/$(TWEAK_NAME)110    endif111    ifneq ($(wildcard $(RESOURCE_DIR)/$(TWEAK_NAME).plist), )112     mkdir -p $(THEOS_STAGING_DIR)/Library/PreferenceLoader/Preferences/$(TWEAK_NAME)113     cp $(RESOURCE_DIR)/$(TWEAK_NAME).plist $(THEOS_STAGING_DIR)/Library/PreferenceLoader/Preferences/$(TWEAK_NAME)114    endif115 116 include $(THEOS_MAKE_PATH)/tweak.mk
页: [1]
查看完整版本: iphone JB开发小记(五)theos的makefile