sbsv1/abld/doc/makmake.rtf
author Bob Rosenberg <bob.rosenberg@nokia.com>
Mon, 20 Sep 2010 10:55:43 +0100
changeset 658 cab9da9b71bb
parent 599 fa7a3cc6effd
permissions -rw-r--r--
Test and fail for badly invalid unit elements when joining
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
599
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     1
{\rtf1\ansi \deff4\deflang1033{\fonttbl{\f0\froman\fcharset0\fprq2 Tms Rmn{\*\falt Times New Roman};}{\f1\froman\fcharset2\fprq2 Symbol;}{\f2\fswiss\fcharset0\fprq2 Helv{\*\falt Arial};}{\f3\fmodern\fcharset0\fprq1 Courier;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     2
{\f4\froman\fcharset0\fprq2 Times New Roman;}{\f5\fswiss\fcharset0\fprq2 Arial{\*\falt  arial};}{\f6\froman\fcharset0\fprq2 MS Serif;}{\f7\fswiss\fcharset0\fprq2 MS Sans Serif;}{\f8\froman\fcharset0\fprq2 Times;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     3
{\f9\fswiss\fcharset0\fprq2 Helvetica{\*\falt Arial};}{\f10\fswiss\fcharset0\fprq2 System;}{\f11\fmodern\fcharset0\fprq1 Courier New;}{\f12\froman\fcharset0\fprq2 New York;}{\f13\fswiss\fcharset0\fprq2 Geneva;}{\f14\fmodern\fcharset0\fprq1 LinePrinter;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     4
{\f15\froman\fcharset0\fprq2 CG Times;}{\f16\fswiss\fcharset0\fprq2 Univers;}{\f17\fswiss\fcharset0\fprq2 Univers Condensed;}{\f18\fswiss\fcharset0\fprq2 Antique Olive;}{\f19\froman\fcharset0\fprq2 Garamond;}{\f20\fswiss\fcharset0\fprq2 CG Omega;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     5
{\f21\fswiss\fcharset0\fprq2 Albertus Medium;}{\f22\fswiss\fcharset0\fprq2 Albertus Extra Bold;}{\f23\froman\fcharset0\fprq2 Clarendon Condensed;}{\f24\fscript\fcharset0\fprq2 Coronet;}{\f25\fmodern\fcharset0\fprq1 Letter Gothic;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     6
{\f26\fscript\fcharset0\fprq2 Marigold;}{\f27\fnil\fcharset2\fprq2 Wingdings;}{\f28\fnil\fcharset2\fprq2 Marlett;}{\f29\fswiss\fcharset238\fprq2 Arial CE{\*\falt  arial};}{\f30\fswiss\fcharset204\fprq2 Arial CYR{\*\falt  arial};}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     7
{\f31\fswiss\fcharset161\fprq2 Arial Greek{\*\falt  arial};}{\f32\fswiss\fcharset162\fprq2 Arial TUR{\*\falt  arial};}{\f33\fmodern\fcharset238\fprq1 Courier New CE;}{\f34\fmodern\fcharset204\fprq1 Courier New CYR;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     8
{\f35\fmodern\fcharset161\fprq1 Courier New Greek;}{\f36\fmodern\fcharset162\fprq1 Courier New TUR;}{\f37\fmodern\fcharset0\fprq1 Lucida Console;}{\f38\fswiss\fcharset0\fprq2 Lucida Sans Unicode;}{\f39\froman\fcharset238\fprq2 Times New Roman CE;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
     9
{\f40\froman\fcharset204\fprq2 Times New Roman CYR;}{\f41\froman\fcharset161\fprq2 Times New Roman Greek;}{\f42\froman\fcharset162\fprq2 Times New Roman TUR;}{\f43\froman\fcharset0\fprq2 Century Schoolbook;}{\f44\fswiss\fcharset0\fprq2 Arial Narrow;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    10
{\f45\froman\fcharset0\fprq2 Map Symbols;}{\f46\fdecor\fcharset0\fprq2 Algerian;}{\f47\froman\fcharset0\fprq2 Footlight MT Light;}{\f48\froman\fcharset0\fprq2 Book Antiqua;}{\f49\fdecor\fcharset0\fprq2 Colonna MT;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    11
{\f50\fnil\fcharset2\fprq2 Monotype Sorts;}{\f51\froman\fcharset2\fprq2 MT Extra;}{\f52\froman\fcharset0\fprq2 Bookman Old Style;}{\f53\fdecor\fcharset0\fprq2 Playbill;}{\f54\fscript\fcharset0\fprq2 Brush Script MT;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    12
{\f55\fswiss\fcharset0\fprq2 Arial Rounded MT Bold;}{\f56\fswiss\fcharset0\fprq2 Haettenschweiler;}{\f57\fdecor\fcharset0\fprq2 Desdemona;}{\f58\fmodern\fcharset2\fprq1 MS LineDraw;}{\f59\froman\fcharset0\fprq2 Wide Latin;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    13
{\f60\fswiss\fcharset0\fprq2 Century Gothic;}{\f61\fswiss\fcharset0\fprq2 Britannic Bold;}{\f62\fdecor\fcharset0\fprq2 Braggadocio;}{\f63\fscript\fcharset0\fprq2 Matura MT Script Capitals;}{\f64\fdecor\fcharset0\fprq2 Kino MT;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    14
{\f65\fswiss\fcharset0\fprq2 Arial Black;}{\f66\fscript\fcharset0\fprq2 Comic Sans MS;}{\f67\fswiss\fcharset0\fprq2 Impact;}{\f68\fswiss\fcharset0\fprq2 Verdana;}{\f69\froman\fcharset2\fprq2 Webdings;}{\f70\fmodern\fcharset128\fprq1 MS Gothic;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    15
{\f71\froman\fcharset255\fprq2 Roman;}{\f72\fscript\fcharset255\fprq2 Script;}{\f73\fmodern\fcharset255\fprq2 Modern;}{\f74\fswiss\fcharset0\fprq1 MS Dialog;}{\f75\fswiss\fcharset0\fprq2 Tahoma;}{\f76\froman\fcharset0\fprq2 Georgia;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    16
{\f77\fmodern\fcharset0\fprq1 Andale Mono;}{\f78\fscript\fcharset0\fprq2 Monotype Corsiva;}{\f79\froman\fcharset0\fprq2 CG Times (W1){\*\falt Times New Roman};}{\f80\froman\fcharset0\fprq0 Bookman{\*\falt Bookman Old Style};}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    17
{\f81\fnil\fcharset0\fprq2 Prestige;}{\f82\fswiss\fcharset2\fprq2 Sign Language;}{\f83\fswiss\fcharset2\fprq2 Animals;}{\f84\fswiss\fcharset2\fprq2 Charting;}{\f85\fswiss\fcharset2\fprq2 Clocks;}{\f86\fswiss\fcharset2\fprq2 CommonBullets;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    18
{\f87\fswiss\fcharset2\fprq2 HomePlanning;}{\f88\fswiss\fcharset2\fprq2 Kidnap;}{\f89\fswiss\fcharset2\fprq2 LandscapePlanning;}{\f90\fswiss\fcharset2\fprq2 HomePlanning2;}{\f91\fswiss\fcharset2\fprq2 MorseCode;}{\f92\fswiss\fcharset2\fprq2 Music;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    19
{\f93\fswiss\fcharset2\fprq2 OfficePlanning;}{\f94\fswiss\fcharset2\fprq2 Semaphore;}{\f95\fswiss\fcharset2\fprq2 Signs;}{\f96\froman\fcharset2\fprq2 ZapfDingbats BT;}{\f97\froman\fcharset2\fprq2 SymbolProp BT;}{\f98\fswiss\fcharset0\fprq2 Futura Md BT;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    20
{\f99\fswiss\fcharset0\fprq2 CopprplGoth BT;}{\f100\fscript\fcharset0\fprq2 ShelleyAllegro BT;}{\f101\fswiss\fcharset0\fprq2 Bedrock;}{\f102\fswiss\fcharset0\fprq2 Humanst521 BT;}{\f103\fscript\fcharset0\fprq2 Nuptial BT;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    21
{\f104\fswiss\fcharset0\fprq2 Harpoon;}{\f105\fdecor\fcharset0\fprq2 Shotgun BT;}{\f106\fswiss\fcharset0\fprq2 Futura Bk BT;}{\f107\fswiss\fcharset0\fprq2 Amerigo BT;}{\f108\fswiss\fcharset0\fprq2 BankGothic Md BT;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    22
{\f109\fdecor\fcharset0\fprq2 BernhardFashion BT;}{\f110\froman\fcharset0\fprq2 ChelthmITC Bk BT;}{\f111\fswiss\fcharset0\fprq2 CopprplGoth Hv BT;}{\f112\fswiss\fcharset0\fprq2 Futura XBlk BT;}{\f113\froman\fcharset0\fprq2 Galliard BT;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    23
{\f114\froman\fcharset0\fprq2 GeoSlab703 Md BT;}{\f115\froman\fcharset0\fprq2 GeoSlab703 XBd BT;}{\f116\froman\fcharset0\fprq2 GeoSlab703 MdCn BT;}{\f117\fswiss\fcharset0\fprq2 Geometr231 Lt BT;}{\f118\fswiss\fcharset0\fprq2 Geometr231 BT;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    24
{\f119\fswiss\fcharset0\fprq2 Geometr231 Hv BT;}{\f120\froman\fcharset0\fprq2 Souvenir Lt BT;}{\f121\fswiss\fcharset0\fprq2 ZapfHumnst BT;}{\f122\fswiss\fcharset0\fprq2 Dauphin;}{\f123\fswiss\fcharset2\fprq2 Czar;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    25
{\f124\fscript\fcharset0\fprq2 Lydian Csv BT;}{\f125\fswiss\fcharset0\fprq2 AvantGarde Bk BT;}{\f126\fswiss\fcharset0\fprq2 AvantGarde Md BT;}{\f127\fnil\fcharset2\fprq2 Linedraw;}{\f128\fmodern\fcharset0\fprq1 Dixonms8;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    26
{\f129\fmodern\fcharset2\fprq1 HPPCCOB;}{\f130\fmodern\fcharset2\fprq1 HPPCCOBB;}{\f131\fmodern\fcharset2\fprq1 HPPCCOBI;}{\f132\fmodern\fcharset2\fprq1 HPPCCOB2;}{\f133\fnil\fcharset2\fprq2 HPPCDIX;}{\f134\fnil\fcharset2\fprq2 HPPCDIXB;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    27
{\f135\fnil\fcharset2\fprq2 HPPCDIXI;}{\f136\fnil\fcharset2\fprq2 HPPCDIX2;}{\f137\fnil\fcharset2\fprq2 HPPCDIX HO;}{\f138\fnil\fcharset2\fprq2 HPPCMAR;}{\f139\fnil\fcharset2\fprq2 HPPCMARB;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    28
{\f140\fnil\fcharset2\fprq2 HPPCMARI{\*\falt Bookman Old Style};}{\f141\fnil\fcharset2\fprq2 HPPCMAR2;}{\f142\fnil\fcharset2\fprq2 Dixon-Tax;}{\f143\fnil\fcharset2\fprq2 Dixon-Tax10;}{\f144\fnil\fcharset2\fprq2 Dixon-Tax-BO;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    29
{\f145\fnil\fcharset2\fprq2 Dixon-Tax-HO Ho;}{\f146\fmodern\fcharset255\fprq1 Terminal;}{\f147\fmodern\fcharset0\fprq1 Fixedsys;}{\f148\fswiss\fcharset0\fprq2 Small Fonts;}{\f149\fswiss\fcharset0\fprq2 MS Dialog Light;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    30
{\f150\fswiss\fcharset0\fprq2 MS SystemEx;}{\f151\fswiss\fcharset0\fprq2 PalmSprings;}{\f152\fnil\fcharset0\fprq2 Microsoft Logo;}{\f153\fswiss\fcharset0\fprq2 Helvetica-Narrow;}{\f154\fswiss\fcharset0\fprq2 Univers (W1){\*\falt Arial};}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    31
{\f155\fswiss\fcharset0\fprq0  ;}{\f156\fnil\fcharset0\fprq0 B Helvetica Bold;}{\f157\fmodern\fcharset0\fprq1 Lucida Sans Typewriter;}{\f158\froman\fcharset0\fprq2 CG Times Bold;}{\f159\froman\fcharset0\fprq2 CG Times Italic;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    32
{\f160\froman\fcharset0\fprq0 (normal text);}{\f161\froman\fcharset0\fprq0 f;}{\f162\froman\fcharset0\fprq2 MicrosoftLogo95;}{\f163\fnil\fcharset2\fprq2 MSIcons;}{\f164\fnil\fcharset0\fprq0 Swis721 BT;}{\f165\fmodern\fcharset0\fprq1 Roman 10cpi;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    33
{\f166\fnil\fcharset0\fprq0 TmsRmn;}{\f167\froman\fcharset0\fprq2 Palatino{\*\falt Book Antiqua};}{\f168\froman\fcharset0\fprq2 Garamond Antiqua;}{\f169\fnil\fcharset0\fprq0 Courier (W1);}{\f170\fnil\fcharset0\fprq2 McGrawHill;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    34
{\f171\fnil\fcharset2\fprq2 MS Reference 1;}{\f172\fnil\fcharset2\fprq2 MS Reference 2;}{\f173\fswiss\fcharset0\fprq2 Albertus (W1);}{\f174\fswiss\fcharset0\fprq2 Albertus Xb (W1);}{\f175\fswiss\fcharset0\fprq2 Antique Olv (W1);}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    35
{\f176\fscript\fcharset0\fprq2 Coronet (W1);}{\f177\fmodern\fcharset0\fprq1 Letter Gothic (W1);}{\f178\fswiss\fcharset0\fprq2 Univers Cd (W1);}{\f179\fswiss\fcharset0\fprq2 CG Omega (W1);}{\f180\froman\fcharset0\fprq2 Clarendon Cd (W1);}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    36
{\f181\froman\fcharset0\fprq2 Garmond (W1);}{\f182\fscript\fcharset0\fprq2 Marigold (W1);}{\f183\fswiss\fcharset0\fprq2 Ottawa;}{\f184\fswiss\fcharset2\fprq2 Wingdings (L$);}{\f185\fswiss\fcharset0\fprq2 Arial (W1);}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    37
{\f186\froman\fcharset2\fprq2 Symbol (AS);}{\f187\froman\fcharset0\fprq2 Times New (W1);}{\f188\froman\fcharset0\fprq0 co;}{\f189\fnil\fcharset2\fprq2 GraecaII;}{\f190\fnil\fcharset2\fprq2 HebraicaII;}{\f191\fnil\fcharset2\fprq2 LRS System 1;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    38
{\f192\fnil\fcharset0\fprq2 LRS System 2;}{\f193\fnil\fcharset0\fprq2 LRS System 3;}{\f194\fnil\fcharset0\fprq2 LRS System 4;}{\f195\fnil\fcharset2\fprq2 SemiticaDict;}{\f196\fnil\fcharset2\fprq2 SILDoulosIPA;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    39
{\f197\fnil\fcharset2\fprq2 SILManuscriptIPA;}{\f198\fnil\fcharset2\fprq2 SILSophiaIPA;}{\f199\fnil\fcharset2\fprq2 TransRomanAH;}{\f200\fnil\fcharset2\fprq2 TransRomanDict;}{\f201\fswiss\fcharset0\fprq2 Albertus Medium (PCL6);}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    40
{\f202\fswiss\fcharset0\fprq2 Albertus Extra Bold (PCL6);}{\f203\fswiss\fcharset0\fprq2 Arial (PCL6);}{\f204\fswiss\fcharset0\fprq2 ITC Avant Garde Gothic (PCL6);}{\f205\fswiss\fcharset0\fprq2 ITC Avant Garde Gothic Demi (PC;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    41
{\f206\froman\fcharset0\fprq2 ITC Bookman Light (PCL6);}{\f207\froman\fcharset0\fprq2 ITC Bookman Demi (PCL6);}{\f208\fswiss\fcharset0\fprq2 CG Omega (PCL6);}{\f209\froman\fcharset0\fprq2 CG Times (PCL6);}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    42
{\f210\froman\fcharset0\fprq2 Clarendon Condensed (PCL6);}{\f211\fmodern\fcharset0\fprq1 Courier (PCL6);}{\f212\fmodern\fcharset0\fprq1 CourierPS (PCL6);}{\f213\fmodern\fcharset0\fprq1 Dark Courier (PCL6);}{\f214\froman\fcharset0\fprq2 Garamond (PCL6);}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    43
{\f215\fswiss\fcharset0\fprq2 Helvetica (PCL6);}{\f216\fswiss\fcharset0\fprq2 Helvetica Narrow (PCL6);}{\f217\fmodern\fcharset0\fprq1 Letter Gothic (PCL6);}{\f218\froman\fcharset0\fprq2 New Century Schoolbook (PCL6);}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    44
{\f219\fswiss\fcharset0\fprq2 Antique Olive (PCL6);}{\f220\froman\fcharset0\fprq2 Palatino (PCL6);}{\f221\froman\fcharset0\fprq2 Times (PCL6);}{\f222\froman\fcharset0\fprq2 Times New Roman (PCL6);}{\f223\fswiss\fcharset0\fprq2 Univers (PCL6);}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    45
{\f224\fswiss\fcharset0\fprq2 Univers Condensed (PCL6);}{\f225\fscript\fcharset0\fprq2 Coronet (PCL6);}{\f226\fscript\fcharset0\fprq2 Marigold (PCL6);}{\f227\froman\fcharset2\fprq2 Symbol (PCL6);}{\f228\froman\fcharset2\fprq2 SymbolPS (PCL6);}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    46
{\f229\fdecor\fcharset2\fprq2 Wingdings (PCL6);}{\f230\fscript\fcharset0\fprq2 ITC Zapf Chancery (PCL6);}{\f231\froman\fcharset0\fprq2 Onyx;}{\f232\froman\fcharset0\fprq2 Rockwell Light;}{\f233\fmodern\fcharset0\fprq0 elite;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    47
{\f234\fswiss\fcharset0\fprq0 lettergothic;}{\f235\fmodern\fcharset0\fprq0 gothicPS;}{\f236\fmodern\fcharset0\fprq0 AvantGarde;}{\f237\fmodern\fcharset0\fprq0 metro;}{\f238\fmodern\fcharset0\fprq0 presentation;}{\f239\fmodern\fcharset0\fprq0 APL;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    48
{\f240\fmodern\fcharset0\fprq0 OCRA;}{\f241\fmodern\fcharset0\fprq0 OCRB;}{\f242\froman\fcharset0\fprq0 emperorPS;}{\f243\froman\fcharset0\fprq0 madaleine;}{\f244\froman\fcharset0\fprq0 zapf humanist;}{\f245\froman\fcharset0\fprq0 classic;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    49
{\f246\froman\fcharset0\fprq0 roman f;}{\f247\froman\fcharset0\fprq0 roman g;}{\f248\froman\fcharset0\fprq0 roman h;}{\f249\froman\fcharset0\fprq0 NewCenturySchlbk;}{\f250\froman\fcharset0\fprq0 souvenir;}{\f251\froman\fcharset0\fprq0 caledonia;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    50
{\f252\froman\fcharset0\fprq0 bodini;}{\f253\froman\fcharset0\fprq0 university;}{\f254\fscript\fcharset0\fprq0 scriptPS;}{\f255\fscript\fcharset0\fprq0 script c;}{\f256\fscript\fcharset0\fprq0 script d;}{\f257\fscript\fcharset0\fprq0 commercial script;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    51
{\f258\fscript\fcharset0\fprq0 park avenue;}{\f259\fscript\fcharset0\fprq0 script h;}{\f260\fscript\fcharset0\fprq0 greek;}{\f261\froman\fcharset0\fprq0 kana;}{\f262\froman\fcharset0\fprq0 hebrew;}{\f263\froman\fcharset0\fprq0 roman s;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    52
{\f264\froman\fcharset0\fprq0 russian;}{\f265\froman\fcharset0\fprq0 roman u;}{\f266\froman\fcharset0\fprq0 roman v;}{\f267\froman\fcharset0\fprq0 roman w;}{\f268\fdecor\fcharset0\fprq0 narrator;}{\f269\fdecor\fcharset0\fprq0 emphasis;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    53
{\f270\fdecor\fcharset0\fprq0 ZapfChancery;}{\f271\fdecor\fcharset0\fprq0 decor d;}{\f272\fdecor\fcharset0\fprq0 old english;}{\f273\fdecor\fcharset0\fprq0 decor f;}{\f274\fdecor\fcharset0\fprq0 decor g;}{\f275\fdecor\fcharset0\fprq0 cooper black;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    54
{\f276\fnil\fcharset0\fprq0 math7;}{\f277\fnil\fcharset0\fprq0 math8;}{\f278\fdecor\fcharset0\fprq0 ZapfDingbats;}{\f279\fnil\fcharset0\fprq0 EAN;}{\f280\fnil\fcharset0\fprq0 pcline;}{\f281\fnil\fcharset0\fprq0 tech h;}{\f282\froman\fcharset0\fprq0 (;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    55
{\f283\fnil\fcharset2\fprq2 MS Outlook;}{\f284\fswiss\fcharset2\fprq2 Bookshelf Symbol 1;}{\f285\fnil\fcharset2\fprq2 Bookshelf Symbol 2;}{\f286\froman\fcharset2\fprq2 Bookshelf Symbol 3;}{\f287\froman\fcharset2\fprq2 Wingdings 2;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    56
{\f288\froman\fcharset2\fprq2 Wingdings 3;}{\f289\fswiss\fcharset0\fprq2 Abadi MT Condensed;}{\f290\froman\fcharset0\fprq2 Tiffany Hv BT;}{\f291\fmodern\fcharset134\fprq1 MS Song;}{\f292\froman\fcharset0\fprq2 Surin;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    57
{\f293\froman\fcharset0\fprq2 Angsana New;}{\f294\fdecor\fcharset0\fprq2 DAVIC Logo_1;}{\f295\fswiss\fcharset0\fprq2 DAVIC Logo_2;}{\f296\fnil\fcharset0\fprq2 augie;}{\f297\fswiss\fcharset0\fprq2 Trebuchet MS;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    58
{\f298\fswiss\fcharset0\fprq2 News Gothic MT;}{\f299\fnil\fcharset0\fprq2 Fraktur Plain;}{\f300\fnil\fcharset0\fprq2 Borzoi;}{\f301\fnil\fcharset0\fprq2 Borzoi Bold;}{\f302\fnil\fcharset0\fprq2 Borzoi Italic;}{\f303\fnil\fcharset0\fprq2 B Surfers;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    59
{\f304\fswiss\fcharset0\fprq2 CAITLYN;}{\f305\fswiss\fcharset0\fprq2 Sage MT;}{\f306\froman\fcharset0\fprq2 Tarragon MT;}{\f307\froman\fcharset0\fprq2 GeoSlab703 Lt BT;}{\f308\froman\fcharset0\fprq2 NewTimes;}{\f309\fswiss\fcharset0\fprq2 SwissA;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    60
{\f310\froman\fcharset0\fprq2 Dutch801 Rm BT;}{\f311\fnil\fcharset134\fprq2 SwissM;}{\f312\fmodern\fcharset0\fprq1 NewCourier;}{\f313\fmodern\fcharset0\fprq1 Monotype.com;}{\f314\fswiss\fcharset0\fprq2 MetaPlusBold-Roman;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    61
{\f315\fswiss\fcharset0\fprq2 MetaPlusNormal-Roman;}{\f316\fswiss\fcharset0\fprq2 MetaPlusNormal-Italic;}{\f317\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f318\fswiss\fcharset186\fprq2 Arial Baltic{\*\falt  arial};}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    62
{\f319\fmodern\fcharset186\fprq1 Courier New Baltic;}{\f320\fswiss\fcharset238\fprq2 Tahoma CE;}{\f321\fswiss\fcharset204\fprq2 Tahoma Cyr;}{\f322\fswiss\fcharset161\fprq2 Tahoma Greek;}{\f323\fswiss\fcharset162\fprq2 Tahoma Tur;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    63
{\f324\fswiss\fcharset186\fprq2 Tahoma Baltic;}{\f325\fmodern\fcharset238\fprq1 Lucida Console CE;}{\f326\fmodern\fcharset204\fprq1 Lucida Console Cyr;}{\f327\fmodern\fcharset161\fprq1 Lucida Console Greek;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    64
{\f328\fmodern\fcharset162\fprq1 Lucida Console Tur;}{\f329\froman\fcharset0\fprq2 Minion Web;}{\f330\froman\fcharset162\fprq0 Times New Roman Turkish;}{\f331\fswiss\fcharset162\fprq0 Arial Turkish;}{\f332\fmodern\fcharset162\fprq0 Courier New Turkish;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    65
{\f333\froman\fcharset0\fprq2 LeedsBit EuroEast;}{\f334\froman\fcharset0\fprq2 LeedsBit EuroNorth;}{\f335\froman\fcharset0\fprq2 LeedsBit EuroSouth;}{\f336\fswiss\fcharset0\fprq2 LeedsBit EuroWest;}{\f337\froman\fcharset0\fprq2 LeedsBit ExtraChars1;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    66
{\f338\fnil\fcharset0\fprq2 Cupola;}{\f339\froman\fcharset0\fprq2 Bookman SudEuro;}{\f340\fmodern\fcharset0\fprq1 Courier SudEuro;}{\f341\froman\fcharset0\fprq2 Garamond SudEuro;}{\f342\froman\fcharset0\fprq2 Times SudEuro;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    67
{\f343\froman\fcharset0\fprq0 +            212  |;}{\f344\fswiss\fcharset0\fprq2 PegasusDialog;}{\f345\froman\fcharset238\fprq2 TIMES CE;}{\f346\froman\fcharset204\fprq2 TIMES Cyr;}{\f347\froman\fcharset161\fprq2 TIMES Greek;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    68
{\f348\froman\fcharset162\fprq2 TIMES Tur;}{\f349\froman\fcharset186\fprq2 TIMES Baltic;}{\f350\fswiss\fcharset238\fprq2 HELVETICA CE;}{\f351\fswiss\fcharset204\fprq2 HELVETICA Cyr;}{\f352\fswiss\fcharset161\fprq2 HELVETICA Greek;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    69
{\f353\fswiss\fcharset162\fprq2 HELVETICA Tur;}{\f354\fswiss\fcharset186\fprq2 HELVETICA Baltic;}{\f355\fswiss\fcharset238\fprq2 Lucida Sans Unicode CE;}{\f356\fswiss\fcharset204\fprq2 Lucida Sans Unicode Cyr;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    70
{\f357\fswiss\fcharset161\fprq2 Lucida Sans Unicode Greek;}{\f358\fswiss\fcharset162\fprq2 Lucida Sans Unicode Tur;}{\f359\fswiss\fcharset238\fprq2 Verdana CE;}{\f360\fswiss\fcharset204\fprq2 Verdana Cyr;}{\f361\fswiss\fcharset161\fprq2 Verdana Greek;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    71
{\f362\fswiss\fcharset162\fprq2 Verdana Tur;}{\f363\fswiss\fcharset186\fprq2 Verdana Baltic;}{\f364\froman\fcharset238\fprq2 Garamond CE;}{\f365\froman\fcharset204\fprq2 Garamond Cyr;}{\f366\froman\fcharset161\fprq2 Garamond Greek;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    72
{\f367\froman\fcharset162\fprq2 Garamond Tur;}{\f368\froman\fcharset186\fprq2 Garamond Baltic;}{\f369\fswiss\fcharset238\fprq2 Arial Narrow CE{\*\falt Helvetica-Narrow};}{\f370\fswiss\fcharset204\fprq2 Arial Narrow Cyr{\*\falt Helvetica-Narrow};}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    73
{\f371\fswiss\fcharset161\fprq2 Arial Narrow Greek{\*\falt Helvetica-Narrow};}{\f372\fswiss\fcharset162\fprq2 Arial Narrow Tur{\*\falt Helvetica-Narrow};}{\f373\fswiss\fcharset186\fprq2 Arial Narrow Baltic{\*\falt Helvetica-Narrow};}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    74
{\f374\fswiss\fcharset238\fprq2 Arial Black CE;}{\f375\fswiss\fcharset204\fprq2 Arial Black Cyr;}{\f376\fswiss\fcharset161\fprq2 Arial Black Greek;}{\f377\fswiss\fcharset162\fprq2 Arial Black Tur;}{\f378\fswiss\fcharset186\fprq2 Arial Black Baltic;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    75
{\f379\froman\fcharset238\fprq2 Bookman Old Style CE;}{\f380\froman\fcharset204\fprq2 Bookman Old Style Cyr;}{\f381\froman\fcharset161\fprq2 Bookman Old Style Greek;}{\f382\froman\fcharset162\fprq2 Bookman Old Style Tur;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    76
{\f383\froman\fcharset186\fprq2 Bookman Old Style Baltic;}{\f384\fswiss\fcharset238\fprq2 Impact CE;}{\f385\fswiss\fcharset204\fprq2 Impact Cyr;}{\f386\fswiss\fcharset161\fprq2 Impact Greek;}{\f387\fswiss\fcharset162\fprq2 Impact Tur;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    77
{\f388\fswiss\fcharset186\fprq2 Impact Baltic;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    78
\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\stylesheet{\widctlpar \f4\fs20\lang2057 \snext0 Normal;}{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    79
\s1\sb360\sa240\keepn\pagebb\widctlpar \b\f5\fs40\lang2057\kerning28 \sbasedon0\snext0 heading 1;}{\s2\sb120\keepn\widctlpar\brdrt\brdrth\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs34\lang2057 \sbasedon0\snext0 heading 2;}{\s3\sb120\keepn\widctlpar\brdrt
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    80
\brdrs\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs28\lang2057 \sbasedon0\snext0 heading 3;}{\s4\sb120\keepn\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqr\tx9072 \b\f5\lang2057 \sbasedon0\snext0 heading 4;}{\s5\keepn\widctlpar \b\f5\fs20\lang2057 \sbasedon0\snext0 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    81
heading 5;}{\s6\sb240\sa60\widctlpar \i\f5\fs20\lang2057 \sbasedon0\snext0 heading 6;}{\s7\sb240\sa60\widctlpar \f5\fs20\lang2057 \sbasedon0\snext0 heading 7;}{\s8\sb240\sa60\widctlpar \i\f5\fs20\lang2057 \sbasedon0\snext0 heading 8;}{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    82
\s9\sb240\sa60\widctlpar \i\f5\fs18\lang2057 \sbasedon0\snext0 heading 9;}{\*\cs10 \additive Default Paragraph Font;}{\s15\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670 \f37\fs16\lang2057 \sbasedon0\snext15 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    83
Code Paragraph;}{\*\cs16 \additive\f37\lang2057 \sbasedon10 Code;}{\*\cs17 \additive\i \sbasedon10 Emphasis;}{\*\cs18 \additive\b \sbasedon10 Warning;}{\s19\li567\keep\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536 \f37\fs20\lang1024 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    84
\sbasedon0\snext19 Indented Code;}{\s20\fi-284\li568\ri567\widctlpar{\*\pn \pnlvl11\ulth\pnf1\pnstart1\pnindent283\pnhang{\pntxtb \'b7}}\f4\fs20\lang2057 \sbasedon21\snext20 List Bullet;}{\s21\fi-284\li851\ri567\widctlpar \f4\fs20\lang2057 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    85
\sbasedon0\snext21 List;}{\s22\li567\ri567\widctlpar \f4\fs20\lang2057 \sbasedon0\snext22 List Continue;}{\s23\fi-284\li568\ri567\widctlpar{\*\pn \pnlvl10\pndec\ulth\pnstart1\pnindent283\pnhang{\pntxta .}}\f4\fs20\lang2057 \sbasedon21\snext23 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    86
List Number;}{\s24\qc\widctlpar \f4\fs20\lang2057 \sbasedon0\snext24 Picture;}{\s25\qc\sb240\sa240\widctlpar \b\f5\fs72\lang2057 \sbasedon0\snext25 Title;}{\s26\widctlpar\phmrg\posxr\posyt\dxfrtext181\dfrmtxtx181\dfrmtxty0 \f4\fs20\lang2057 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    87
\sbasedon0\snext26 Logo;}{\s27\sb1440\sa1200\sl-460\slmult0\widctlpar \b\scaps\f5\fs40\lang2057 \sbasedon0\snext27 Subtitle;}{\s28\sl-200\slmult0\widctlpar \b\f5\fs20\lang2057 \sbasedon0\snext28 Version;}{\s29\widctlpar \f4\fs20\lang2057 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    88
\sbasedon0\snext29 Date Published;}{\s30\widctlpar \b\f4\fs20\lang2057 \sbasedon0\snext30 Copyright Header;}{\s31\widctlpar \f4\fs20\lang2057 \sbasedon0\snext31 Copyright Notice;}{\s32\sa1440\sl-960\slmult0\keepn\widctlpar \b\scaps\f5\fs40\lang2057 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    89
\sbasedon0\snext32 TOC Header;}{\s33\sb480\sa160\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072 \b\f4\fs20\lang2057 \sbasedon0\snext0 toc 1;}{\s34\li221\sb120\keepn\widctlpar\tqr\tx9072 \f4\fs20\lang2057 \sbasedon0\snext0 toc 2;}{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    90
\s35\li442\widctlpar\tqr\tx9072 \f5\fs20\lang2057 \sbasedon0\snext0 toc 3;}{\s36\li658\widctlpar\tqr\tx9072 \f4\fs20\lang2057 \sbasedon0\snext0 toc 4;}{\*\cs37 \additive\f5\uld\cf11 \sbasedon10 Hypertext Link;}{\s38\widctlpar\brdrr\brdrdb\brdrw15\brsp20 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    91
\f37\fs20\lang2057 \sbasedon0\snext38 Constant Definition;}{\s39\widctlpar\tqc\tx4536\tqr\tx9072 \f4\fs18\lang2057 \sbasedon0\snext39 header;}{\s40\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqc\tx4536\tqr\tx9072 \f4\fs20\lang2057 \sbasedon0\snext40 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    92
Even Footer Paragraph;}{\s41\widctlpar\tqc\tx4536\tqr\tx9072 \caps\f4\fs18\lang2057 \sbasedon0\snext41 Even Header Paragraph;}{\s42\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqc\tx4536\tqr\tx9072 \f4\fs18\lang2057 \sbasedon39\snext42 footer;}{\*\cs43 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    93
\additive\b \sbasedon10 page number;}{\s44\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqc\tx4536\tqr\tx9072 \f4\fs20\lang2057 \sbasedon0\snext44 Odd Footer Paragraph;}{\s45\widctlpar\tqc\tx4536\tqr\tx9072 \caps\f4\fs18\lang2057 \sbasedon0\snext45 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    94
Odd Header Paragraph;}{\s46\widctlpar\brdrl\brdrth\brdrw30\brsp80 \f4\fs20\lang2057 \sbasedon0\snext46 Status;}{\*\cs47 \additive\i \sbasedon10 Glossary Reference;}{\s48\widctlpar \f4\fs20\lang2057 \sbasedon0\snext48 Compact;}{\*\cs49 \additive\f5 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    95
\sbasedon10 App Text;}{\s50\sb240\sa240\keepn\widctlpar \b\f5\fs40\lang2057\kerning28 \sbasedon1\snext50 Heading 1 NoSection;}{\*\cs51 \additive\f5 \sbasedon10 Filename;}{\s52\fi-284\li1135\ri1134\widctlpar{\*\pn \pnlvl11\pnf1\pnstart1\pnindent283\pnhang
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    96
{\pntxtb \'b7}}\f4\fs20\lang2057 \sbasedon0\snext52 List Bullet 2;}{\*\cs53 \additive\b \sbasedon10 Glossary Definition;}{\*\cs54 \additive\i \sbasedon10 Document Name;}{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    97
\s55\keep\keepn\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670 \f37\fs20\lang2057 \sbasedon0\snext0 Prototype;}{\*\cs56 \additive\scaps \sbasedon10 Key Name;}{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    98
\s57\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670 \f37\fs16\lang2057 \sbasedon0\snext57 Reduced Code;}{\s58\li851\ri851\keep\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \f4\fs20\lang2057 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
    99
\sbasedon0\snext0 Syntax;}{\s59\qc\sb240\sa240\keepn\widctlpar \b\f5\fs20\lang2057 \sbasedon0\snext59 Picture Title;}{\s60\fi-3119\li3119\widctlpar\tx3119 \f4\fs20\lang2057 \sbasedon0\snext60 Member List;}{\*\cs61 \additive\i \sbasedon10 Syntax Element;}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   100
{\*\cs62 \additive\b\f37 \sbasedon10 Syntax Literal;}{\s63\widctlpar \f4\fs20\lang2057 \sbasedon0\snext63 annotation text;}{\*\cs64 \additive\b\f5\uld\cf11 \sbasedon10 Example Link;}{\s65\widctlpar \b\f5\fs36\lang2057 \sbasedon0\snext65 TOC 0;}{\*\cs66 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   101
\additive\f37\cf2\lang2057 \sbasedon16 Resource Code;}{\s67\widctlpar \f5\fs20\cf6\lang2057 \sbasedon0\snext67 Converter Directive;}{\s68\widctlpar \b\f37\fs20\uldb\lang2057 \sbasedon0\snext0 Platform Dependency;}{\*\cs69 \additive\b\cf10 \sbasedon10 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   102
Raw HTML;}{\*\cs70 \additive\i\cf14 \sbasedon10 URL Reference;}{\s71\widctlpar \f5\fs20\ul\cf13\lang2057 \sbasedon0\snext0 Hypertext Anchor;}{\s72\widctlpar\brdrr\brdrs\brdrw45\brsp20 \f4\fs20\lang2057 \sbasedon0\snext72 Member Definition;}{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   103
\s73\li567\ri567\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \f4\fs20\lang2057 \sbasedon0\snext73 Figure Picture;}{\s74\widctlpar\brdrl\brdrth\brdrw30\brsp80 \f4\fs20\cf5\lang2057 \sbasedon46\snext74 Comment;}{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   104
\s75\li567\ri567\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \b\f4\fs20\lang2057 \sbasedon0\snext75 Figure Caption;}{\s76\li567\ri567\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \f4\fs20\lang2057 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   105
\sbasedon0\snext76 Figure Description;}{\s77\li567\ri567\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \f4\fs20\cf6\lang2057 \sbasedon73\snext77 Figure Status;}{\s78\li567\ri567\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   106
\brdrs\brdrw15\brsp20 \f5\fs20\ul\cf13\lang2057 \sbasedon0\snext78 Figure Anchor;}{\*\cs79 \additive\f5\uld\cf12 \sbasedon37 Figure Link;}{\s80\li567\ri567\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \i\f4\fs20\cf10\lang2057 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   107
\sbasedon73\snext80 Figure Directive;}{\s81\widctlpar \f4\fs20\lang2057 \sbasedon0\snext81 Body Text;}{\*\cs82 \additive\f5\uld\cf9 \sbasedon37 Hypertext Link Text;}{\*\cs83 \additive\caps\f3\fs24\uld\cf2 \sbasedon10 Feature List;}{\*\cs84 \additive
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   108
\caps\f3\fs24\uld\cf2 \sbasedon10 Feature Level;}}{\info{\title Tools}{\subject Specifying projects with makmake}{\author Preferred Customer}{\operator Preferred Customer}{\creatim\yr1996\mo3\dy6\hr13\min48}{\revtim\yr2000\mo3\dy15\hr11\min26}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   109
{\printim\yr1999\mo9\dy2\hr16\min51}{\version2}{\edmins3}{\nofpages11}{\nofwords5150}{\nofchars29356}{\*\company Symbian Ltd}{\vern57395}}\paperw11907\paperh16840\margl851\margr851\margt1134\margb1134\gutter1134 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   110
\widowctrl\ftnbj\aenddoc\linkstyles\hyphcaps0\formshade \fet0\sectd \binfsxn1\binsxn1\psz9\linex576\headery709\footery709\colsx709\endnhere {\header \pard\plain \s39\widctlpar\tqc\tx4536\tqr\tx9072 \f4\fs18\lang2057 {\field{\*\fldinst  TITLE  \\
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   111
* MERGEFORMAT }{\fldrslt Tools}}\tab Company Confidential\tab EON SDK, Copyright \'a9 1996, Symbian Ltd
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   112
\par }{\footer \pard\plain \s42\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqc\tx4536\tqr\tx9072 \f4\fs18\lang2057 {\field{\*\fldinst  SUBJECT  \\* MERGEFORMAT }{\fldrslt Specifying projects with makmake}}\tab Page {\field{\*\fldinst  PAGE  \\* MERGEFORMAT 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   113
}{\fldrslt {\lang1024 4}}}\tab Last saved {\field{\*\fldinst  SAVEDATE  \\* MERGEFORMAT }{\fldrslt {\lang1024 25/02/00 12:37}}}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   114
\par }{\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang{\pntxta )}}{\*\pnseclvl5
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   115
\pndec\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   116
{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}\pard\plain \s1\sb360\sa240\keepn\pagebb\widctlpar \b\f5\fs40\lang2057\kerning28 {\field\flddirty{\*\fldinst  SUBJECT  \\* MERGEFORMAT }{\fldrslt 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   117
Specifying projects with makmake}}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   118
\par \pard\plain \s71\widctlpar \f5\fs20\ul\cf13\lang2057 tools.makmake
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   119
\par \pard\plain \s67\widctlpar \f5\fs20\cf6\lang2057 doclevel v6
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   120
\par \pard\plain \s74\widctlpar\brdrl\brdrth\brdrw30\brsp80 \f4\fs20\cf5\lang2057 this chapter documents {\cs51\f5 makmake} to e32toolp release 210 level.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   121
\par \pard\plain \s2\sb120\keepn\widctlpar\brdrt\brdrth\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs34\lang2057 Overview
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   122
\par \pard\plain \widctlpar \f4\fs20\lang2057 EPOC projects are defined by an {\cs51\f5 .mmp} file which specifies the essential components of the project. The {\cs51\f5 makmake}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   123
 tool is used to build makefiles for use in various environments. These makefiles are then used for project development. Some makefiles are built for use in building the project from the command-line, while others are for use with the MSVC++ IDE. For inst
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   124
ance, starting with {\cs51\f5 euhello.mmp}, you can do:
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   125
\par \pard\plain \s19\li567\keep\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536 \f37\fs20\lang1024 makmake euhello wins
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   126
\par \pard\plain \widctlpar \f4\fs20\lang2057 to build the makefile file {\cs51\f5 euhello.wins}.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   127
\par You can now run:
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   128
\par \pard\plain \s19\li567\keep\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536 \f37\fs20\lang1024 nmake -f euhello.wins
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   129
\par \pard\plain \widctlpar \f4\fs20\lang2057 to build the project from the command line.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   130
\par To build the {\cs51\f5 .dsp} and {\cs51\f5 .dsw} files, designed for the Microsoft Developer Studio (Visual C++ 6.0), you can do:
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   131
\par \pard\plain \s19\li567\keep\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536 \f37\fs20\lang1024 makmake euhello vc6
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   132
\par \pard\plain \widctlpar \f4\fs20\lang2057 For the ARM environment, you can do:
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   133
\par \pard\plain \s19\li567\keep\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536 \f37\fs20\lang1024 makmake euhello armi\line nmake -f euhello.armi
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   134
\par \pard\plain \widctlpar \f4\fs20\lang2057 to build the project from the command line (there is no IDE for ARM).
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   135
\par A command line makefile produced by {\cs51\f5 makmake} allows the executable (an {\cs51\f5 .exe} or any type of DLL) to be produced in one of two variants:
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   136
\par {\pntext\pard\plain\f1\fs20\lang2057 \'b7\tab}\pard\plain \s20\fi-284\li568\ri567\widctlpar{\*\pn \pnlvlblt\ulth\pnf1\pnstart1\pnindent283\pnhang{\pntxtb \'b7}}\f4\fs20\lang2057 {\cs51\f5 udeb} - wide (UNICODE), debug mode
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   137
\par {\pntext\pard\plain\f1\fs20\lang2057 \'b7\tab}{\cs51\f5 urel} - wide (UNICODE), release mode
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   138
\par \pard\plain \widctlpar \f4\fs20\lang2057 which may be selected by specifying the variant as a target. For instance, to build the {\cs51\f5 udeb} variant of the executable, you can do:
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   139
\par \pard\plain \s19\li567\keep\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536 \f37\fs20\lang1024 nmake -f euhello.armi udeb
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   140
\par \pard\plain \widctlpar \f4\fs20\lang2057 The default for ARM is wide, release mode; the default for WINS and WINC is wide, debug mode. These default targets will be built if {\cs51\f5 nmake} is invoked with no target is specified.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   141
\par If you build the executable using the MSVC++ IDE makefile, you may also need to run tools such as the bitmap and application information compilers, to build other aspects of the project. Command line makefiles will invoke these tools for you.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   142
\par On the {\cs51\f5 makmake} command line, you may use path specifications to locate the {\cs51\f5 .mmp} file in any directory, eg
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   143
\par \pard\plain \s19\li567\keep\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536 \f37\fs20\lang1024 makmake ..\\..\\epoc32ex\\e32\\euhello armi
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   144
\par \pard\plain \widctlpar \f4\fs20\lang2057 The generated {\cs51\f5 .dsw} and {\cs51\f5 .dsp} files are, however, always written into the current directory.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   145
\par \pard\plain \s3\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs28\lang2057 Invocation syntax
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   146
\par \pard\plain \s58\li851\ri851\keep\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \f4\fs20\lang2057 {\cs62\b\f37 makmake} [ {\cs61\i options} ] [{\cs61\i source-path}]{\cs61\i project} {\cs61\i platform}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   147
\par {\cs61\i platform}{\cs61  :\line \tab }{\cs62\b\f37 wins}{\cs61  | }{\cs62\b\f37 winc}{\cs61  | }{\cs62\b\f37 armi}{\cs61  | }{\cs62\b\f37 arm4}{\cs61  | }{\cs62\b\f37 thumb}{\cs61  | }{\cs62\b\f37 vc6}{\cs61  | }{\cs62\b\f37 vc6winc}{\cs61   | }{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   148
\cs62\b\f37 tools}{\cs61  | }{\cs62\b\f37 vc6tools}{\cs61  
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   149
\par 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   150
\par }{\cs61\i options} :\line \tab {\cs62\b\f37 -d\line }\tab {\cs62\b\f37 -v\line }\tab {\cs62\b\f37 -mmp\line \tab -plat
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   151
\par }\pard\plain \widctlpar \f4\fs20\lang2057 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   152
\par where
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   153
\par \trowd \trgaph108\trleft-108 \cellx2268\cellx9179 \pard \widctlpar\intbl {\cs61\i project}\cell is the project to be specified\cell \pard \widctlpar\intbl \row \trowd \trgaph108\trleft-108 \cellx2268\cellx9179 \pard \widctlpar\intbl {\cs61\i source-path
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   154
\cell }specifies the path of the source {\cs51\f5 .mmp} file, relative to the current directory.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   155
\par If omitted, the source {\cs51\f5 .mmp} file is {\cs61\i project}{\cs51\f5 .mmp} in the current directory.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   156
\par Whether or not the {\cs61\i source-path} is specified, the generated makefile is always written in the current directory.\cell \pard \widctlpar\intbl \row \pard \widctlpar\intbl {\cs61\i Platform}\cell is the target platform\cell \pard \widctlpar\intbl 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   157
\row \pard \widctlpar\intbl {\cs62\b\f37 -d\cell }indicates that the makefile is to be created in directory {\cs51\f5 \\EPOC32\\Build\\}{\cs51\i\f5 path_to_mmp_file\\mmp_basename\\}{\cs61\i platform} rather than the directory in which {\cs51\f5 makmake}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   158
 was invoked. Note that relative paths within the created makefile will be relative to the directory in which {\cs51\f5 makmake} was invoked so {\cs51\f5 nmake} should be invoked from that directory too if the project is to build correctly.\cell \pard 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   159
\widctlpar\intbl \row \pard \widctlpar\intbl {\cs62\b\f37 -v}{\cs61\i \cell }indicates verbose operation
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   160
\par When this flag is specified, {\cs51\f5 makmake} prints many progress messages.  The default is to give error messages only.\cell \pard \widctlpar\intbl \row \pard \widctlpar\intbl {\cs62\b\f37 -mmp
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   161
\par \cell }Provides basic syntax guide to writing {\cs51\f5 .mmp} files instead of making the makefile.\cell \pard \widctlpar\intbl \row \trowd \trgaph108\trleft-108 \cellx2268\cellx9179 \pard \widctlpar\intbl {\cs62\b\f37 -plat }{\cs61\i platform}{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   162
\cs62\b\f37 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   163
\par \cell }Provides syntax guide to writing platform-specific sections of {\cs51\f5 .mmp} files, and information about which macros are defined for preprocessing the {\cs51\f5 .mmp} files.\cell \pard \widctlpar\intbl \row \pard \widctlpar 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   164
\par Normally, {\cs51\f5 makmake} generates a makefile whose extension depends on the platform:
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   165
\par {\pntext\pard\plain\cs51\f1\fs20\lang2057 \'b7\tab}\pard\plain \s20\fi-284\li568\ri567\widctlpar{\*\pn \pnlvlblt\ulth\pnf1\pnstart1\pnindent283\pnhang{\pntxtb \'b7}}\f4\fs20\lang2057 for {\cs62\b\f37 wins}, the extension is {\cs51\f5 .wins}{\cs51 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   166
\par {\pntext\pard\plain\f1\fs20\lang2057 \'b7\tab}}for {\cs62\b\f37 winc}, the extension is {\cs51\f5 .winc}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   167
\par {\pntext\pard\plain\f1\fs20\lang2057 \'b7\tab}for {\cs62\b\f37 armi}, the extension is {\cs51\f5 .armi}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   168
\par {\pntext\pard\plain\f1\fs20\lang2057 \'b7\tab}for {\cs62\b\f37 vc6} and {\cs62\b\f37 vc6winc}, the extension is {\cs51\f5 .dsp}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   169
\par \pard\plain \widctlpar \f4\fs20\lang2057 Generally, the makefile extension is the platform name preceded by a dot.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   170
\par Projects can be built for ARM platform in three flavours, ARMI, ARM4 and THUMB.  These three flavours are termed \ldblquote Application Binary Interfaces\rdblquote 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   171
, or ABIs for short.  ARMI is the ARM interworking ABI, ARM4 is the plain ARM ABI and THUMB is the ARM thumb ABI.  Projects built for ARMI
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   172
 can work with projects built in any of the three ABIs, while projects built for ARM4 and THUMB can only work with projects built for the same ABI or ARMI.  Projects built for THUMB use a different mode of ARM4 processing, where the processor handles inst
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   173
ructions of 16 bits rather than 32 bits in length from a separate instruction set.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   174
\par \pard\plain \s74\widctlpar\brdrl\brdrth\brdrw30\brsp80 \f4\fs20\cf5\lang2057 really all this needs to be explained in more detail somewhere else - and a link to that section introduced here.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   175
\par \pard\plain \s2\sb120\keepn\widctlpar\brdrt\brdrth\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs34\lang2057 Structure of project definition files
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   176
\par \pard\plain \widctlpar \f4\fs20\lang2057 A {\cs51\f5 makmake} project definition file has extension {\cs51\f5 .mmp} and has the form
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   177
\par \pard\plain \s58\li851\ri851\keep\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \f4\fs20\lang2057 {\cs61\i wholefile} :\line \tab {\cs61\i statement-list}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   178
\par {\cs61\i statement} :\line |\tab {\cs61\i aif-stmt}\line |\tab {\cs61\i asspabi-stmt}\line |\tab {\cs61\i asspexports-stmt}\line |\tab {\cs61\i assplibrary-stmt}\line |\tab {\cs61\i bitmap-section}\line |\tab {\cs61\i deffile-stmt}\line |\tab {\i document
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   179
}{\cs61\i -stmt}\line |\tab {\i epocalldllentrypoints}{\cs61\i -stmt}\line |\tab {\i epocheapsize}{\cs61\i -stmt}\line |\tab {\i epocprocesspriority}{\cs61\i -stmt}\line |\tab {\i epocstacksize}{\cs61\i -stmt}\line |\tab {\i exportunfrozen}\line |\tab {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   180
\cs61\i lang-stmt}\line |\tab {\cs61\i library-stmt}\line |\tab {\cs61\i linkas-stmt}\line |\tab {\cs61\i macro-stmt}\line |\tab {\cs61\i nostrictdef-stmt}\line |\tab {\cs61\i resource-stmt}\line |\tab {\cs61\i source-stmt}\line |\tab {\cs61\i 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   181
sourcepath-stmt}\line |\tab {\cs61\i staticlibrary-stmt}\line |\tab {\cs61\i strictdepend-stmt}\line |\tab {\cs61\i systeminclude-stmt}\line |\tab {\cs61\i systemresource-stmt}\line |\tab {\cs61\i target-stmt}\line |\tab {\cs61\i target-path-stmt}\line |
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   182
\tab {\cs61\i target-type-stmt}\line {\cs61 |}{\cs61\i \tab uid-stmt}\line |\tab {\cs61\i userinclude-stmt}\line |\tab {\cs61\i platform-specific-section}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   183
\par \pard\plain \widctlpar \f4\fs20\lang2057 Each statement occupies a single line.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   184
\par {\b Note:} a trailing backslash is used to indicate a line continuation.  Therefore, specify directories without their trailing backslash, eg {\cs49\f5 systeminclude \\epoc32\\include}, rather than {\cs49\f5 systeminclude \\epoc32\\include\\}.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   185
\par Use the C++ style comment syntax for comments. 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   186
\par \pard\plain \s3\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs28\lang2057 Specifying the target
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   187
\par \pard\plain \widctlpar \f4\fs20\lang2057 Use the {\cs62\b\f37 target} statement to specify the file generated by the project.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   188
\par Use the {\cs62\b\f37 targettype} statement to specify the kind of project:
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   189
\par Use the {\cs62\b\f37 targetpath} statement to specify where the project should be released.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   190
\par \pard\plain \s58\li851\ri851\keep\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \f4\fs20\lang2057 {\cs61\i target-stmt} :\line \tab {\cs62\b\f37 target} {\cs61\i filename}{\cs62\b\f37 .}{\cs61\i ext}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   191
\par {\cs61\i targettype-stmt} :\line \tab {\cs62\b\f37 targettype} {\cs61\i target-type}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   192
\par {\cs61\i target-type} :\line \tab {\cs62\b\f37 app} | {\cs62\b\f37 dll} |{\cs62\b\f37  exe} | {\cs62\b\f37 exedll }| {\cs62\b\f37 fsy }| {\cs62\b\f37 ldd }| {\cs62\b\f37 pdd }| {\cs62\b\f37 epocexe }| {\cs62\b\f37 lib }| {\cs62\b\f37 ani }| {\cs62\b\f37 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   193
ctl }| {\cs62\b\f37 fep }| {\cs62\b\f37 mda }| {\cs62\b\f37 mdl }| {\cs62\b\f37 opx }| {\cs62\b\f37 pdl }| {\cs62\b\f37 rdl}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   194
\par {\cs61\i target-path-stmt} :\line \tab {\cs62\b\f37 targetpath} {\cs61\i target-path}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   195
\par \pard\plain \widctlpar \f4\fs20\lang2057 For the target, specify only the filename with its extension.  The path for the released target will be chosen depending on the platform, variant, and release path:
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   196
\par {\pntext\pard\plain\f1\fs20\lang2057 \'b7\tab}\pard\plain \s20\fi-284\li568\ri567\widctlpar{\*\pn \pnlvlblt\ulth\pnf1\pnstart1\pnindent283\pnhang{\pntxtb \'b7}}\f4\fs20\lang2057 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   197
for non-Win32 platforms, or for Win32 platforms when no release path is specified, the target will be released to {\cs51\f5 \\epoc32\\release\\}{\cs61\i platform}{\cs51\f5 \\}{\cs61\i variant}{\cs51\f5 \\}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   198
\par {\pntext\pard\plain\f1\fs20\lang2057 \'b7\tab}for Win32 platforms, when a target path is specified, that path will be interpreted as a location on the {\cs51\f5 z:} drive, and the release path will therefore be {\cs51\f5 \\epoc32\\release\\}{\cs61\i 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   199
platform}{\cs51\f5 \\}{\cs61\i variant}{\cs51\f5 \\z\\}{\cs61\i target-path}{\cs51\f5 \\}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   200
\par \pard\plain \widctlpar \f4\fs20\lang2057 {\cs51\f5 makmake} supports the following target types:
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   201
\par \trowd \trgaph108\trleft-108 \cellx993\cellx6309 \pard \widctlpar\intbl {\cs62\b\f37 exe}\cell an executable program. 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   202
\par For an example, see {\cs37\f5\uld\cf11 introbld.exe-example.mmp}.\cell \pard \widctlpar\intbl \row \trowd \trgaph108\trleft-108 \cellx993\cellx6309 \pard \widctlpar\intbl {\cs62\b\f37 dll}\cell a DLL\~\emdash 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   203
 either a shared library, or a polymorphic interface. 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   204
\par For an example, see {\cs37\f5\uld\cf11 introbld.dll}.\cell \pard \widctlpar\intbl \row \pard \widctlpar\intbl {\cs62\b\f37 app\cell }an EIKON application\~\emdash  linked with the {\cs16\f37 NewApplication()}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   205
 function exported as ordinal 1. For an example, see {\cs37\f5\uld\cf11 introbld.eikon-example}.\cell \pard \widctlpar\intbl \row \pard \widctlpar\intbl {\cs62\b\f37 exedll}\cell an executable program for a multi-process platform, a DLL\~
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   206
for a single-process platform.  
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   207
\par For an example, see {\cs37\f5\uld\cf11 introbld.eikon-exedll}.\cell \pard \widctlpar\intbl \row \pard \widctlpar\intbl {\cs62\b\f37 ldd}\cell a logical device driver.\cell \pard \widctlpar\intbl \row \pard \widctlpar\intbl {\cs62\b\f37 pdd}\cell 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   208
a physical device driver.\cell \pard \widctlpar\intbl \row \pard \widctlpar\intbl {\cs62\b\f37 Epocexe}\cell 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   209
an EPOC executable that can be launched from the shell.  This is an executable program which exports no functions under a multi-process platform and a DLL which is linked with the {\f37 TInt WinsMain()}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   210
 function exported as ordinal 1 under a single-process platform.\cell \pard \widctlpar\intbl \row \pard \widctlpar\intbl {\cs62\b\f37 lib}\cell a static library.\cell \pard \widctlpar\intbl \row \pard \widctlpar\intbl {\cs62\b\f37 ani}\cell 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   211
an animation DLL.\cell \pard \widctlpar\intbl \row \pard \widctlpar\intbl {\cs62\b\f37 ctl}\cell a system control.\cell \pard \widctlpar\intbl \row \pard \widctlpar\intbl {\cs62\b\f37 fep}\cell a front-end processor.\cell \pard \widctlpar\intbl \row 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   212
\pard \widctlpar\intbl {\cs62\b\f37 mda}\cell a media-server plug-in DLL.\cell \pard \widctlpar\intbl \row \pard \widctlpar\intbl {\cs62\b\f37 mdl}\cell a mime recognizer.\cell \pard \widctlpar\intbl \row \pard \widctlpar\intbl {\cs62\b\f37 opx}\cell 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   213
an OPL extension.\cell \pard \widctlpar\intbl \row \pard \widctlpar\intbl {\cs62\b\f37 pdl}\cell a printer driver.\cell \pard \widctlpar\intbl \row \trowd \trgaph108\trleft-108 \cellx993\cellx6309 \pard \widctlpar\intbl {\cs62\b\f37 rdl}\cell 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   214
a recognizer.\cell \pard \widctlpar\intbl \row \pard\plain \s3\fi-9072\li9072\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs28\lang2057 Specifying UIDs
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   215
\par \pard\plain \s71\widctlpar \f5\fs20\ul\cf13\lang2057 tools.makmake.uids
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   216
\par \pard\plain \s21\fi-284\li851\ri567\widctlpar \f4\fs20\lang2057 Use the {\cs62\b\f37 uid} statement to specify the UIDs for a project.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   217
\par \pard\plain \s58\li851\ri851\keep\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \f4\fs20\lang2057 {\cs61\i uid-stmt} :\line \tab {\cs62\b\f37 uid} {\cs61\i uid2} [{\cs61\i uid3} ]
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   218
\par \pard\plain \widctlpar \f4\fs20\lang2057 Each executable has three UIDs. The first is dictated by the target type of the project (whether a {\cs51\f5 .exe} or DLL). The second and third are optional. You specify only the second and, optio
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   219
nally, the third UID with the {\cs61\i uid-stmt}.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   220
\par Under WINS, a separate source file is created with the generated makefile containing code to incorporate UIDs into the executable. The name of this file is created by taking the basename of the executable and adding the extension {\cs51\f5 .uid.cpp}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   221
. UIDs may be specified in either hex or decimal.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   222
\par The {\cs61\i uid-stmt} applies exclusively to UNICODE builds of source now that NARROW builds are no longer supported by Makmake.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   223
\par See also {\cs37\f5\uld\cf11 introbld.uids} in Programming EPOC\~ | \~The Build Environment.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   224
\par \pard\plain \s4\sb120\keepn\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqr\tx9072 \b\f5\lang2057 Static interface DLLs
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   225
\par \pard\plain \widctlpar \f4\fs20\lang2057 A static interface DLL represents an interface which is defined to its clients by one or more headers for use at compile time, and an import library ({\cs51\f5 .lib}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   226
) for use at link time.  Then, when a client executable is loaded at run-time, the loader notes that it requires the static interface DLL to be available.  The loader either loads the DLL or, if it is loaded already, attaches the new client to it.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   227
\par Conventionally, the DLL is identified by name only.  In EPOC, all static interface DLLs must have a {\cs61\i uid2} of {\cs16\f37 0x1000008d}.  The particular static interface DLL is then identified by name {\i and by }{\cs61\i uid3}.  If a DLL called {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   228
\cs51\f5 bossview.dll} is built with {\cs61\i uid3}={\cs16\f37 0x10000252}, then the name used in the import library for non-Win32 builds of EPOC is {\cs51\f5 bossview[10000252]}.  The EPOC loader loads the {\cs51\f5 bossview.dll}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   229
, and checks that its UID is {\cs16\f37 0x10000252}.  If the {\cs61\i uid3} in the DLL does not match, then the load fails.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   230
\par \pard\plain \s4\sb120\keepn\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqr\tx9072 \b\f5\lang2057 Polymorphic DLLs
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   231
\par \pard\plain \widctlpar \f4\fs20\lang2057 A polymorphic DLL represents an interface defined with a gate function and an abstract class with at least one virtual function.  The polymorphic DLL exports the gate function at ordinal 1, which ty
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   232
pically constructs a concrete class derived from the abstract interface.  The virtual function is then called, and the functions of the class are available.  Examples of polymorphic DLLs in EPOC include device drivers, EIKON application programs, and many
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   233
 more.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   234
\par Each type of interface should specify its own UID, which is used as {\cs61\i uid2} for the polymorphic DLL.  The function responsible for loading a polymorphic DLL (for example, the EIKON {\cs51\f5 apprun}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   235
 program, or the E32 kernel) should check that its {\cs61\i uid2} corresponds with the expected interface type.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   236
\par For polymorphic DLLs, the interpretation of {\cs61\i uid3} depends on the interface type.  {\cs61\i uid3} may not be required by all interfaces.  The application architecture mandates that {\cs61\i uid3} identify the particular application: the {\cs61\i 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   237
uid3} is used to relate an application program to its document files.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   238
\par Since polymorphic DLLs do not produce an import library ({\cs51\f5 .lib}), the name mangling scheme used by static interface libraries is not used by polymorphic DLLs.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   239
\par \pard\plain \s4\sb120\keepn\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqr\tx9072 \b\f5\lang2057 UIDs and Win32
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   240
\par \pard\plain \widctlpar \f4\fs20\lang2057 The makefiles automa
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   241
tically generate UIDs for ARM executables, as part of the executable format.  For Win32 executables, this is not directly possible.  The source for such executables must contain the UIDs, and they must match with the UIDs specified in the project file.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   242
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   243
\par Under WINS, UIDs are specified using syntax such as:
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   244
\par \pard\plain \s19\li567\keep\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536 \f37\fs20\lang1024 #pragma data_seg(\ldblquote .E32_UID\rdblquote )\line __WINS_UID(0x10000079,0x1000006c,0x10000253)\line #pragma data_seg()
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   245
\par \pard\plain \widctlpar \f4\fs20\lang2057 This is only necessary for polymorphic DLLs\~\emdash 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   246
 the Win32 loader does not check the UIDs of static interface DLLs. Source files containing the UID syntax are created automatically for Win32 executables when the makefile is created.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   247
\par \pard\plain \s3\fi-9072\li9072\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs28\lang2057 Specifying directories
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   248
\par \pard\plain \widctlpar \f4\fs20\lang2057 Use the {\cs62\b\f37 sourcepath} statement to define the location of the project and its workfiles.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   249
\par \pard\plain \s58\li851\ri851\keep\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \f4\fs20\lang2057 {\cs61\i sourcepath-stmt} :\line \tab {\cs62\b\f37 sourcepath} {\cs61\i sourcepath}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   250
\par \pard\plain \widctlpar \f4\fs20\lang2057 The {\cs61\i sourcepath} should correspond to the directory containing the source files for the project specified after the {\i sourcepath} statement. If the {\cs61\i sourcepath} begins with a backslash
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   251
 then this directory will be considered an absolute source path, otherwise the directory will be treated as relative to the directory containing the {\cs51\f5 .mmp} file. Multiple {\i sourcepath }statements may be specified, but note that {\cs51\f5 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   252
makmake} will expect subsequent source and resource file statements to relate to the last previous {\i sourcepath} statement, or the directory containing the {\cs51\f5 .mmp} file if no {\i sourcepath} statement has yet been specified.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   253
\par Temporary files will be built into directory {\cs51\f5 \\epoc32\\build\\}{\cs61\i path_to_mmp_file\\mmp_basename\\platform}{\cs51\f5 \\}{\cs61\i variant}{\cs51\f5 \\}.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   254
\par \pard\plain \s3\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs28\lang2057 Specifying source files
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   255
\par \pard\plain \widctlpar \f4\fs20\lang2057 Use the {\cs62\b\f37 source} statement to specify source files.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   256
\par \pard\plain \s58\li851\ri851\keep\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \f4\fs20\lang2057 {\cs61\i source-stmt} :\line \tab {\cs62\b\f37 source} {\cs61\i source-file-list}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   257
\par \pard\plain \widctlpar \f4\fs20\lang2057 Each {\cs62\b\f37 source} statement may specify an arbitrary number of source files.  Each source file should be specified including its extension, eg {\cs51\f5 euhello.cpp}.  There may be an arbitrary number of {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   258
\cs62\b\f37 source} statements in the project description file relative to each subproject.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   259
\par \pard\plain \s3\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs28\lang2057 Specifying document files
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   260
\par \pard\plain \widctlpar \f4\fs20\lang2057 Use the {\cs62\b\f37 document} statement to specify source files.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   261
\par \pard\plain \s58\li851\ri851\keep\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \f4\fs20\lang2057 {\cs61\i document-stmt} :\line \tab {\cs62\b\f37 document} {\cs61\i document-file-list}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   262
\par \pard\plain \widctlpar \f4\fs20\lang2057 Each {\cs62\b\f37 document} statement may specify an arbitrary number of document files.  There may be an arbitrary number of {\cs62\b\f37 document}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   263
 statements in the project description file relative to each subproject.  This keyword is only used in the creation of IDE makefiles, where it can be useful for specifying files so that they are available for editing within the IDE but do not play a part 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   264
in building the executable.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   265
\par The .{\f5 mmp} file is incorporated in the MSVC6 IDE by default, and the MSVC6 workspace can be regenerated using {\f5 makmake} once the .{\f5 mmp}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   266
 file has been changed without the need to close the workspace first. To create a custom tool to do this in the IDE, Select Tools - Customise \'85 - Tools.  In the dialog, choose an appropriate name for the tool, e.g. \ldblquote recreate workspace
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   267
\rdblquote , and type \ldblquote nmake.exe\rdblquote  as the command and \ldblquote -nologo -f $(WkspDir)\\$(WkspName).sup.make recreateworkspace\rdblquote  as the program arguments.  Leave the \ldblquote initial directory\rdblquote 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   268
 field blank, and tick the \ldblquote Close window on exiting\rdblquote  checkbox.  Having edited the .MMP file for a project, select the new tool from the tools menu to recreate the workspace.  You will then be prompted to reload the new workspace.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   269
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   270
\par \pard\plain \s3\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs28\lang2057 Specifying resource files
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   271
\par \pard\plain \widctlpar \f4\fs20\lang2057 If your project has a resource file, specify it using the {\cs62\b\f37 resource} statement.  If it is a system project rather than an application, use the {\cs62\b\f37 systemresource} statement.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   272
\par \pard\plain \s58\li851\ri851\keep\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \f4\fs20\lang2057 {\cs61\i resource-stmt} :\line \tab {\cs62\b\f37 resource} {\cs61\i resource-file-list}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   273
\par {\cs61\i systemresource-stmt} :\line \tab {\cs62\b\f37 systemresource} {\cs61\i resource-file-list}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   274
\par \pard\plain \widctlpar \f4\fs20\lang2057 Each resource file should be given with its extension, eg {\cs51\f5 golf.rss}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   275
\par The {\cs62\b\f37 resource} and {\cs62\b\f37 systemresource} statements have almost identical functions.  Use the {\cs62\b\f37 resource} statement for applications: the makefile will build the resource file into the target directory.  Use the {\cs62\b\f37 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   276
systemresource} statement for system components: the makefile will build the resource file into {\cs51\f5 \\epoc32\\release\\}{\cs61\i platform}{\cs51\f5 \\}{\cs61\i variant}{\cs51\f5 \\z\\system\\data\\}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   277
 for a WINS or WINC build.  If more than one language is specified with the {\i lang-stmt} then each resource will be compiled multiple times, once for each language specified.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   278
\par \pard\plain \s3\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs28\lang2057 Specifying AIFs
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   279
\par \pard\plain \widctlpar \f4\fs20\lang2057 If your project has an application information file, specify it using the {\cs62\b\f37 aif} statement.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   280
\par \pard\plain \s58\li851\ri851\keep\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \f4\fs20\lang2057 {\cs61\i aif-stmt} :\line \tab {\cs62\b\f37 aif} {\cs61\i target-file source-path resource }{\cs61 [ }{\cs61\i color-depth }{\cs61 ]}{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   281
\cs61\i  source-bitmap-list}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   282
\par \pard\plain \widctlpar \f4\fs20\lang2057 The target file to be produced by {\f5 aiftool} should be given with its extension, eg {\cs51\f5 golf.aif.}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   283
  The source path should contain the source resource file and any bitmaps the target file requires.  If the source path is specified as a relative path it will be considered relative to the directory containing the .{\f5 mmp} file.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   284
  The source resource file should be given complete with its extension.  Just a single color-depth must be specified for all the source bitmaps, and must be of the form [c]{\i digit}[{\i digit}], where the optional \ldblquote c\rdblquote 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   285
 denotes whether the bitmap is a color bitmap and the digits represent the color-depth.  All the source bitmaps should be listed together with their extensions.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   286
\par The target file will be created in the same directory as the application.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   287
\par Currently, building of application information files within the MSVC IDE is not supported.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   288
\par \pard\plain \s3\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs28\lang2057 Specifying BITMAPs
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   289
\par \pard\plain \widctlpar \f4\fs20\lang2057 If your project has a bitmaps, specify each one using a {\b\f37 bitmap} section.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   290
\par \pard\plain \s58\li851\ri851\keep\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \f4\fs20\lang2057 {\cs61\i bitmap-section} :\line \tab {\cs62\b\f37 start bitmap }{\cs61\i target-file}{\cs62\b\f37 \line }\tab {\cs62\b\f37 targetpath }{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   291
\cs61\i target-path}{\cs62\b\f37 \line }\tab {\cs62\b\f37 header\line }\tab {\cs62\b\f37 sourcepath }{\cs61\i source-path}{\cs62\b\f37 \line }\tab {\cs62\b\f37 source }{\cs61\i color-depth source-bitmap-list}{\cs62\b\f37 \line }\tab {\cs62\b\f37 end
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   292
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   293
\par }\pard\plain \widctlpar \f4\fs20\lang2057 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   294
\par The target file to be produced by {\f5 bmconv} should be given with its extension, eg {\cs51\f5 golf.mbm.}  If a target path is specified, that path will be interpreted as a location on the emulated {\cs51\f5 z:}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   295
 drive; otherwise, the target file will be built into the same directory as the application.  If the header keyword is supplied in the section, a bitmap header will be generated in directory {\f5 \\EPOC32\\Include}, e.g. {\f5 golf.mbg}.  Multiple {\b\f37 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   296
sourcepath} and {\b\f37 source} statements can be specified - source bitmaps specified with each {\b\f37 source} statement will be expected to exist in the directory specified with the latest {\b\f37 sourcepath}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   297
 statement above it, or the directory containing the {\cs51\f5 .mmp} file if no {\b\f37 sourcepath} statement has yet been specified.  Just a single color-depth must be specified for all the source bitmaps within a single {\b\f37 source}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   298
 statement, and must be of the form [c]{\i digit}[{\i digit}], where the optional \ldblquote c\rdblquote  denotes whether the bitmap is a color bitmap and the digits represent the color-depth.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   299
\par Currently, building of bitmaps within the MSVC IDE is not supported.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   300
\par \pard\plain \s3\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs28\lang2057 Specifying link definition files
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   301
\par \pard\plain \widctlpar \f4\fs20\lang2057 Use the {\cs62\b\f37 deffile} statement to override the default linker definition file for the project, and the {\b\f37 exportunfrozen} statement if unfrozen exports are to appear in the project\rquote 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   302
s import library.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   303
\par \pard\plain \s58\li851\ri851\keep\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \f4\fs20\lang2057 {\cs61\i deffile-stmt} :\line \tab {\cs62\b\f37 deffile} {\cs61\i filename\line exportunfrozen-stmt }{\cs61 :\line \tab }{\cs61\b\f37 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   304
exportunfrozen}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   305
\par \pard\plain \widctlpar \f4\fs20\lang2057 A {\cs51\f5 def}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   306
 file specifies associations between exported function names and their ordinal export number.  It is used by the linker when constructing a DLL and (where applicable) when constructing its associated import library.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   307
\par Exporting functions by ordinal means that ROMs are significantly more compact, and simplifies the EPOC loader.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   308
\par The assignment of ordinals must be controlled by a {\cs51\f5 def} file in two situations:
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   309
\par {\pntext\pard\plain\f1\fs20\lang2057 \'b7\tab}\pard\plain \s20\fi-284\li568\ri567\widctlpar{\*\pn \pnlvlblt\ulth\pnf1\pnstart1\pnindent283\pnhang{\pntxtb \'b7}}\f4\fs20\lang2057 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   310
a polymorphic interface DLL must export a particular function as ordinal 1; in this case, the {\cs51\f5 def} file is used to specify this association, while other exported functions may have a random order
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   311
\par {\pntext\pard\plain\f1\fs20\lang2057 \'b7\tab}a re-released DLL must be used by clients built against the old version; in this case, the {\cs51\f5 def}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   312
 file is used to ensure that all functions exported by the old version of the DLL are exported with the same ordinal by the new version
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   313
\par \pard\plain \widctlpar \f4\fs20\lang2057 For many polymorphic DLLs within EPOC a special target type is provided so that {\f5 makmake} can ensure that the correct function is exported as ordinal 1.  Where a special target type is provided the {\f5 def}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   314
 file can be dispensed with.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   315
\par  {\cs51\f5 def} files are sometimes colloquially referred to as freeze files, because they freeze the association between name and ordinal, for exported functions.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   316
\par The GNU and Microsoft tool chains use different schemes for mangling the names of exported functions.  This means that {\cs51\f5 def} files of the same name must be differentiated by storing them in separate directories.  Conventionally, {\cs51\f5 ..\\
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   317
bmarm\\} is used for ARM {\cs51\f5 def} files, while {\cs51\f5 ..\\bwins\\} is used for WINS and WINC {\cs51\f5 def} files.  By default, the frozen {\f5 def} file takes its basename from the basename of the target for the project.  
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   318
\par Where the default frozen def file is overridden by the {\b\f37 deffile} statement, a path to the file can be specified as part of the filename. If no path is specified, the file will be expected to be in:
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   319
\par {\pntext\pard\plain\f1\fs20\lang2057 \'b7\tab}\pard\plain \s20\fi-284\li568\ri567\widctlpar{\*\pn \pnlvlblt\ulth\pnf1\pnstart1\pnindent283\pnhang{\pntxtb \'b7}}\f4\fs20\lang2057 directory {\cs51\f5 ..\\bwins\\} for platforms WINS, WINC, VC6 and VC6WINC
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   320
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   321
\par {\pntext\pard\plain\f1\fs20\lang2057 \'b7\tab}directory {\cs51\f5 ..\\bmarm\\} for the ARM platform.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   322
\par \pard\plain \widctlpar \f4\fs20\lang2057 If a path is specified, place the {\cs62\b\f37 deffile} statement within {\cs16\f37 #ifdef}{\i s} so that the same file will not be used during both ARM,WINS and WINC builds. For example:
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   323
\par \pard\plain \s19\li567\keep\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536 \f37\fs20\lang1024 #if defined(WINS)\line deffile-stmt\line #else if defined(MARM)\line deffile-stmt\line #endif
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   324
\par \pard\plain \widctlpar \f4\fs20\lang2057 (note that the platform name macros used with #if defs must be in upper-case).
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   325
\par In most cases, the functions exported from a DLL depend on the build variant.  This is common because descriptor class names depend on whether the build is wide or narrow.  For such DLLs, different {\cs51\f5 def} files\~\emdash  differentiated by the {
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   326
\cs51\f5 -u} suffix\~\emdash  are used.  {\cs51\f5 makmake} controls this using the {\cs62\b\f37 nostrictdef} statement.  Although narrow builds are no longer supported the {\cs51\f5 -u} suffix\~
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   327
is still in use to maintain backward compatibility with previous versions of {\f5 makmake}.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   328
\par Note too that under WINS, when using an {\cs62\b\f37 exedll} target type, the first export is the one which will be called when the DLL is loaded, so you should use a {\cs51\f5 def} file for the WINS variant.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   329
\par {\f5 Makefiles} generated by {\f5 makmake} now create the import library associated with an executable (where applicable) directly from the frozen {\f5 def}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   330
 file, so only frozen exported functions will appear in the import library and only these exported functions can be linked against by other components.  For ARM platforms, import libraries for compatible ABIs are also created.  For example, if a project i
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   331
s built for ARMI then ARMI, THUMB and ARM4 import libraries will be created; and if a project is built for THUMB, ARMI and THUMB import libraries will be created.   If the {\b\f37 exportunfrozen}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   332
 keyword is specified, the import library is not created from the frozen {\f5 def}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   333
 file; instead, the import library is created as a side-effect of linking so that all exported functions, even unfrozen ones, appear in the import library.  This also means that import libraries for compatible ABIs are not created.  Use of the {\b\f37 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   334
exportunfrozen} keyword is only recommended for the early stages of project development, when the Application Programming Interface is likely to be subject to change.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   335
\par The makefiles perform a two-stage link when building the executable:
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   336
\par The first link ignores any {\cs51\f5 def} file; it simply links the executable using the names of exported functions.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   337
\par A tool is then invoked on the executable created by this first-stage link to produce a new {\cs51\f5 def} file containing the list of associations between exported function names and their ordinal export numbers. If a {\cs51\f5 def}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   338
 file exists for the project, the tool takes the contained list of associations and ensures that the new {\cs51\f5 def}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   339
 file contains the same list of associations; any new associations, representing new functions exported by the executable, appear at the end of the list. The new {\cs51\f5 def} file is created in the temporary files directory {\cs51\f5 \\epoc32\\build\\}{
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   340
\cs61\i path_to_mmp_file\\mmp_basename}{\cs61 \\}{\cs61\i platform}{\cs51\f5 \\.}, and has the same base name as the executable with the extension {\cs51\f5 .def}. This is used to perform the second-stage of linking, by exported function number.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   341
\par In VC6 workspace files building is carried out in t
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   342
he same way as for WINS makefiles, using a supplementary makefile to facilitate the two-stage link.  The supplementary makefile is created whenever the VC6 workspace file is created.  Since the supplementary makefile will not be aware of the addition or r
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   343
emoval of a project\rquote s source files via the menus supplied within the IDE, it is better to carry out such tasks by editing the .{\f5 mmp}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   344
 file within the IDE and then regenerate the workspace file.  This operation can be carried out without the need to shut down a
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   345
nd restart the IDE, and also has the advantage that the next time that command-line makefiles are created for the project they will be up to date with changes to the project made within the IDE.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   346
\par \pard\plain \s4\sb120\keepn\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqr\tx9072 \b\f5\lang2057 Freezing export numbers
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   347
\par \pard\plain \widctlpar \f4\fs20\lang2057 Use the frozen {\f5 def} file to ensure the backward compatibility of new releases of a project. If required, override the frozen {\f5 def} filename using the {\b\f37 deffile}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   348
 statement.  To freeze exports for the first time, use makmake to build makefiles for your project for the WINS platform and an ARM platfor
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   349
m and then build your project in either UDEB or UREL variants for each of these platforms (the three ARM platforms, ARMI, ARM4 and THUMB, share a common {\f5 def} file.  A warning will be generated to the effect that the frozen {\f5 def}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   350
 file does not yet exist.  Once the project has been built you can freeze it by calling the FREEZE target in the makefiles, e.g. 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   351
\par \pard \fi720\widctlpar {\f37 nmake -f <makefile> freeze}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   352
\par \pard \widctlpar If you\rquote re using the {\f5 abld} tool it\rquote s easier to use the {\f5 abld freeze} command to do the freezing, which will call the FREEZE target in the makefiles for you.  Either method will create the frozen {\f5 def}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   353
 file containing the project\rquote s exported functions.  Once the project is frozen, regenerate the makefiles so that the import library will be created directly from the frozen {\f5 def} file.  The project can be frozen in this way even if the {\b\f37 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   354
exportunfrozen} statement is specified, but the import library will be created as a side-effect of linking rather than from the frozen {\f5 def} file, and this import library will be created whether the project is frozen or not.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   355
\par \pard\plain \s74\widctlpar\brdrl\brdrth\brdrw30\brsp80 \f4\fs20\cf5\lang2057 Could do with a link to the {\f5 abld} documentation where {\f5 abld} is mentioned above.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   356
\par \pard\plain \widctlpar \f4\fs20\lang2057 New exports can be added to the frozen {\f5 def} file by calling the FREEZE target in the makefiles once the project has been built with the new exports incorporated.  The FREEZE target calls a tool, {\f5 efreeze}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   357
, to compare the frozen {\f5 def} file, if it exists, with the one generated by the two-stage link process in directory {\cs51\f5 \\epoc32\\build\\}{\cs61\i path_to_mmp_file}{\cs51\f5 \\}{\cs61\i mmp_basename}{\cs61 \\}{\cs61\i platform}{\cs51\f5 \\
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   358
..  efreeze} checks that the frozen exports are all present and correct in the generated {\f5 def} file, and appends any new exports to the end of the frozen {\f5 def} file.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   359
\par \pard\plain \s3\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs28\lang2057 Specifying strict link definition files
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   360
\par \pard\plain \s58\li851\ri851\keep\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \f4\fs20\lang2057 {\cs61\i strictdef-stmt} :\line \tab {\cs62\b\f37 nostrictdef}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   361
\par \pard\plain \widctlpar \f4\fs20\lang2057 It is no longer necessary to specify the {\cs62\b\f37 nostrictdef} statement since there is always just one {\f5 def}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   362
 file for the UDEB and UREL variants of a project for each platform.  If the nostrictdef statement is specified, the {\f5 u} suffix will not be applied to the frozen {\f5 def} file.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   363
\par \pard\plain \s3\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs28\lang2057 Specifying include directories
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   364
\par \pard\plain \widctlpar \f4\fs20\lang2057 Use the {\cs62\b\f37 userinclude} and {\cs62\b\f37 systeminclude} statements to define directories to be scanned for files specified in {\cs62\b\f37 #include} statements in source and resource files.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   365
\par \pard\plain \s58\li851\ri851\keep\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \f4\fs20\lang2057 {\cs61\i user-include-stmt} :\line \tab {\cs62\b\f37 userinclude} {\cs61\i directory-list}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   366
\par {\cs61\i system-include-stmt} :\line \tab {\cs62\b\f37 systeminclude} {\cs61\i directory-list}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   367
\par \pard\plain \widctlpar \f4\fs20\lang2057 Each of these statements may be specified any number of times, and each may have any number of directories.  Each directory is added, in the order specified, to the list of user or system include directories.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   368
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   369
\par When a pr
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   370
oject is being built, the pre-processor will be invoked specifying all the system include and user include directories indicated in these statements.  No standard include directories will be searched unless the project links to Win32 libraries under WINS 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   371
- see {\cs37\f5\uld\cf11 tools.makmake.win32-libraries}.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   372
\par Files included from source code with a line such as
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   373
\par \pard\plain \s19\li567\keep\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536 \f37\fs20\lang1024 #include "golf.h"
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   374
\par \pard\plain \widctlpar \f4\fs20\lang2057 will first be searched for in the directory containing the source file, then in the user include directories and finally in the system include directories.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   375
\par Files included from source code with a line such as
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   376
\par \pard\plain \s19\li567\keep\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536 \f37\fs20\lang1024 #include <e32def.h>
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   377
\par \pard\plain \widctlpar \f4\fs20\lang2057 will be searched for in the system include directories.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   378
\par \pard\plain \s3\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs28\lang2057 Specifying strict generation of dependencies
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   379
\par \pard\plain \widctlpar \f4\fs20\lang2057 If your project\rquote s dependencies may differ with the variant, use the {\cs62\b\f37 strictdepend} statement:
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   380
\par \pard\plain \s58\li851\ri851\keep\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \f4\fs20\lang2057 {\cs61\i strictdepend-stmt} :\line \tab {\cs62\b\f37 strictdepend}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   381
\par \pard\plain \widctlpar \f4\fs20\lang2057 Without this statement, dependencies will be evaluated for one variant, and then used for all.  With {\cs62\b\f37 strictdepend}, dependencies are evaluated explicitly\~\emdash  a sometimes lengthy process\~\emdash 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   382
 for each variant.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   383
\par Use {\cs62\b\f37 strictdepend} if, for instance, you conditionally include a header file, e.g.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   384
\par \pard\plain \s19\li567\keep\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536 \f37\fs20\lang1024 #if defined(_DEBUG)\line include <debug.h>\line #endif
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   385
\par \pard\plain \s3\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tx630\tqr\tx9072 \b\f5\fs28\lang2057 Specifying import libraries
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   386
\par \pard\plain \s71\widctlpar \f5\fs20\ul\cf13\lang2057 tools.makmake.specifying-libraries
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   387
\par \pard\plain \widctlpar \f4\fs20\lang2057 Use the {\cs62\b\f37 library} statement to specify import libraries.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   388
\par \pard\plain \s58\li851\ri851\keep\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \f4\fs20\lang2057 {\cs61\i library-stmt} :\line \tab {\cs62\b\f37 library} {\cs61\i filename-list}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   389
\par \pard\plain \widctlpar \f4\fs20\lang2057 The {\cs62\b\f37 library} statement may specify any number of files, and there may be many {\cs62\b\f37 library} statements.  Specify the entire filename, e.g. {\cs51\f5 euser.lib}.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   390
\par If you need to link to Win32 system libraries in a WINS build, use the {\cs62\b\f37 win32_library} statement instead: see {\cs37\f5\uld\cf11 tools.makmake.win32-libraries}.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   391
\par \pard\plain \s3\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tx630\tqr\tx9072 \b\f5\fs28\lang2057 Specifying static libraries
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   392
\par \pard\plain \widctlpar \f4\fs20\lang2057 Use the {\cs62\b\f37 staticlibrary} statement to specify static libraries.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   393
\par \pard\plain \s58\li851\ri851\keep\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \f4\fs20\lang2057 {\cs61\i library-stmt} :\line \tab {\cs62\b\f37 staticibrary} {\cs61\i filename-list}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   394
\par \pard\plain \widctlpar \f4\fs20\lang2057 The {\cs62\b\f37 staticibrary} statement may specify any number of files, and there may be many {\cs62\b\f37 library} statements.  Specify the entire filename, e.g. {\cs51\f5 euser.lib}.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   395
\par \pard\plain \s3\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs28\lang2057 Specifying language
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   396
\par \pard\plain \widctlpar \f4\fs20\lang2057 Use the {\cs62\b\f37 lang} statement to indicate languages code for the project:
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   397
\par \pard\plain \s58\li851\ri851\keep\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \f4\fs20\lang2057 {\cs61\i lang-stmt} :\line \tab {\cs62\b\f37 lang} {\cs61\i language-list}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   398
\par \pard\plain \widctlpar \f4\fs20\lang2057 If this statement is not specified, the default language code is {\cs62\b\f37 sc}.  The language codes should be two-digit codes, and are used to complete the extension of generated resource files, as {\cs61\i 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   399
project}{\cs51\f5 .r}{\cs61\i sc}.  Each resource file specified with the {\i resource-stmt}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   400
 will be compiled multiple times, once for each language specified, though the specification of several languages will not cause several versions of the bitmaps or application information files in your project to be created.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   401
\par \pard\plain \s3\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs28\lang2057 Specifying #defines
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   402
\par \pard\plain \widctlpar \f4\fs20\lang2057 Use the {\cs62\b\f37 macro} statement to specify #defines for the preprocessing of source code:
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   403
\par \pard\plain \s58\li851\ri851\keep\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \f4\fs20\lang2057 {\cs61\i macro-stmt} :\line \tab {\cs62\b\f37 macro} {\cs61\i macro-list}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   404
\par \pard\plain \widctlpar \f4\fs20\lang2057 Each macro specified will be defined for preprocessing the C++ source code in your project.  Each macro will be upper-cased before being defined, so it\rquote s better to specify them in upper-case in the .{\f5 mmp
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   405
} file.  Macro substitution is not supported - the macros will all be defined with the value \ldblquote 1\rdblquote .
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   406
\par \pard\plain \s3\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs28\lang2057 Specifying a non-default stack size
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   407
\par \pard\plain \widctlpar \f4\fs20\lang2057 Use the {\cs62\b\f37 epocstacksize} statement to specify a stack size for your executable other than the default 8KB.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   408
\par \pard\plain \s58\li851\ri851\keep\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \f4\fs20\lang2057 {\cs61\i epocstacksize-stmt} :\line \tab {\cs62\b\f37 epocstacksize} {\cs61\i stacksize}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   409
\par \pard\plain \widctlpar \f4\fs20\lang2057 The size of the stack, in bytes, can be specified in decimal or hexadecimal format.  Use of this statement will have no effect under the WINS platform.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   410
\par \pard\plain \s3\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs28\lang2057 Specifying non-default heap sizes
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   411
\par \pard\plain \widctlpar \f4\fs20\lang2057 Use the {\cs62\b\f37 epocheapsize} statement to specify minimum and maximum heap sizes for your executable other than the default 1KB minimum and 1MB maximum.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   412
\par \pard\plain \s58\li851\ri851\keep\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \f4\fs20\lang2057 {\cs61\i epocheapsize-stmt} :\line \tab {\cs62\b\f37 epocheapsize} {\cs61\i minimum maximum}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   413
\par \pard\plain \widctlpar \f4\fs20\lang2057 The sizes can be specified in decimal or hexadecimal format.  Use of this statement will have no effect under Win32 platforms.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   414
\par \pard\plain \s3\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs28\lang2057 Specifying the calling of dll entry points
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   415
\par \pard\plain \widctlpar \f4\fs20\lang2057 Use the {\cs62\b\f37 epoccalldllentrypoints}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   416
 statement to specify that the entry point, E32Dll(),  of your dll, should be called when your dll is loaded.  By default entry points are not called for non-Win32 platforms.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   417
\par \pard\plain \s58\li851\ri851\keep\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \f4\fs20\lang2057 {\cs61\i epoccalldllentrypoints-stmt} :\line \tab {\cs62\b\f37 epoccalldllentrypoints}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   418
\par \pard\plain \widctlpar \f4\fs20\lang2057 Use of this statement will have no effect under Win32 platforms, where entry points are always called.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   419
\par \pard\plain \s3\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs28\lang2057 Specifying process priority
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   420
\par \pard\plain \widctlpar \f4\fs20\lang2057 Use the {\cs62\b\f37 epocprocesspriority}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   421
 statement to specify the process priority for your executable EXE. Specify low, background, foreground, high, windowserver, fileserver, realtimeserver or supervisor.  The value specified will be passed on to {\cs51\f5 petran} via its {\cs62\b\f37 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   422
-priority}{\i  } switch.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   423
\par \pard\plain \s58\li851\ri851\keep\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \f4\fs20\lang2057 {\cs61\i epocprocesspriority-stmt} :\line \tab {\cs62\b\f37 epocprocesspriority} {\cs61\i priority}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   424
\par \pard\plain \widctlpar \f4\fs20\lang2057 Use of this statement will have no effect under Win32 platforms.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   425
\par \pard\plain \s3\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs28\lang2057 Specifying a different internal DLL name
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   426
\par \pard\plain \widctlpar \f4\fs20\lang2057 Use the {\cs62\b\f37 linkas} statement to give the DLL that your project defines a different internal name.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   427
\par \pard\plain \s58\li851\ri851\keep\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \f4\fs20\lang2057 {\cs61\i linkas-stmt} :\line \tab {\cs62\b\f37 linkas} {\cs61\i priority}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   428
\par \pard\plain \widctlpar \f4\fs20\lang2057 By default, the internal name of the DLL will be the same as the DLL\rquote s filename.  Under certain rare circumstances it\rquote 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   429
s useful to be able to give a DLL a different internal name.  For example, a DLL might be built with a certain name and then renamed as part of a ROM, so the internal name must be the same as the DLL\rquote s name in ROM.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   430
\par Use of this statement will have no effect under Win32 platforms.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   431
\par \pard\plain \s3\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs28\lang2057 Specifying ASSP items
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   432
\par \pard\plain \widctlpar \f4\fs20\lang2057 ASSP stands for \ldblquote Application Specific Standard Product\rdblquote .  
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   433
ASSP statements are for use by projects linking to the EPOC kernel, such as device drivers, so unless you are building such projects you can ignore this section.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   434
\par \pard\plain \s58\li851\ri851\keep\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \f4\fs20\lang2057 {\cs61\i assplibrary-stmt} :\line \tab {\cs62\b\f37 assplibrary} {\cs61\i filename-list}{\cs62\b\f37 \line }{\cs61\i asspexports-stmt} :
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   435
\line \tab {\cs62\b\f37 asspexports}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   436
\par {\cs61\i asspabi-stmt} :\line \tab {\cs62\b\f37 asspabi}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   437
\par \pard\plain \widctlpar \f4\fs20\lang2057 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   438
The import library for the EPOC kernel and associated libraries are created in a directory corresponding to the hardware platform, or ASSP, a particular version of the kernel is built for.  For this reason, projects linking to the kernel must list {\f5 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   439
ekern.lib} with the {\b\f37 assplibrary} statement, to differentiate it from standard EPOC import libraries.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   440
\par If the {\b\f37 asspexports}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   441
 statement is specified, this means that the project exports different functions for different ASSPs; in other words, the API of a particular version of the project will correspond to the hardware platform that version of the project is built for.  The st
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   442
atement has two effects:
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   443
\par {\pntext\pard\plain\f1\fs20\lang2057 \'b7\tab}\pard\plain \s20\fi-284\li568\ri567\widctlpar{\*\pn \pnlvlblt\ulth\pnf1\pnstart1\pnindent283\pnhang{\pntxtb \'b7}}\f4\fs20\lang2057 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   444
the import library for the project will be created in an ASSP-specific directory rather than in the usual directory for containing the ARM import libraries - \\{\f5 EPOC32}\\{\f5 Release}\\{\i assp-name}\\{\i variant}\\ rather than \\{\f5 EPOC32}\\{\f5 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   445
Release}\\{\i platform-name}\\{\i variant}\\.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   446
\par {\pntext\pard\plain\f1\fs20\lang2057 \'b7\tab}the frozen def file for the project will, by default, reside in an ASSP-specific directory rather than ..\\{\f5 bmarm}\\.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   447
\par \pard\plain \widctlpar \f4\fs20\lang2057 If the {\b\f37 asspabi} statement is specified, the ABI that the project will be built for - ARMI, ARM4 or THUMB - will be the same as that of the kernel for a 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   448
particular ASSP.  Otherwise the ABI for the project will be the default ABI for a particular ASSP.  The {\b\f37 asspabi} statement is implied by the presence of either the {\b\f37 asspexports} or the {\b\f37 assplibrary} statements.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   449
\par \pard\plain \s74\widctlpar\brdrl\brdrth\brdrw30\brsp80 \f4\fs20\cf5\lang2057 This section is perhaps just going to confuse people, and maybe should just be in the base porting guide or the device driver documentation or somewhere like that.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   450
\par \pard\plain \s3\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs28\lang2057 Platform-specific items
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   451
\par \pard\plain \widctlpar \f4\fs20\lang2057 A platform-specific section is enclosed in {\cs62\b\f37 start} and {\cs62\b\f37 end}:
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   452
\par \pard\plain \s58\li851\ri851\keep\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \f4\fs20\lang2057 {\cs62\b\f37 start }{\cs61\i platform}\line \tab {\cs61\i platform-specific-statement-list}\line {\cs62\b\f37 end}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   453
\par \pard\plain \widctlpar \f4\fs20\lang2057 The platform-specific statements allowed depend on the platform.  Unlike {\cs62\b\f37 #if defined}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   454
  blocks, which allow statements to specify different files dependent upon the platform for which the makefile is being created, {\cs62\b\f37 start ... end} platform blocks are used to delimit statements understood only by {\cs51\f5 makmake}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   455
 when creating a makefile for a particular platform.  The {\cs51\f5 makmake} project definition file is preprocessed every time {\cs51\f5 makmake} is run, with the target platform defined as a macro equal to itself (where WINC is the platfor
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   456
m, WINS is also defined).  This allows, for example, the project definition file to be preprocessed with the macro WINS defined as WINS so preserving the syntax of {\cs62\b\f37 start WINS ... end}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   457
 blocks.  Where VC5 is the target platform, the macro WINS is defined instead; similarly the macros WINS and WINC are defined where the target platform is VC5WINC.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   458
\par \pard\plain \s3\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs28\lang2057 WINS-specific statements
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   459
\par \pard\plain \s71\widctlpar \f5\fs20\ul\cf13\lang2057 tools.makmake.wins
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   460
\par \pard\plain \s4\sb120\keepn\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqr\tx9072 \b\f5\lang2057 Specifying a base address
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   461
\par \pard\plain \widctlpar \f4\fs20\lang2057 Use the {\cs62\b\f37 baseaddress} statement to specify the address to which a DLL will be built and, if possible, loaded.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   462
\par \pard\plain \s58\li851\ri851\keep\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \f4\fs20\lang2057 {\cs61\i wins-specific-statement} :\line \tab {\cs62\b\f37 baseaddress} {\cs61\i hex-constant}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   463
\par \pard\plain \widctlpar \f4\fs20\lang2057 Use {\cs62\b\f37 baseaddress} to specify the base address of a WINS DLL.  Give each DLL a different base address, so that the Windows loader doesn\rquote 
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   464
t have to do any relocation while loading EPOC and its DLLs.  This considerably speeds up the initialisation of EPOC under WINS.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   465
\par \pard\plain \s4\sb120\keepn\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqr\tx9072 \b\f5\lang2057 Specifying Win32 system libraries
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   466
\par \pard\plain \s71\widctlpar \f5\fs20\ul\cf13\lang2057 tools.makmake.win32-libraries
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   467
\par \pard\plain \widctlpar \f4\fs20\lang2057 Use the {\cs62\b\f37 win32_library} statement to specify any Win32 system libraries needed by the project.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   468
\par \pard\plain \s58\li851\ri851\keep\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \f4\fs20\lang2057 {\cs61\i wins-specific-statement} :\line \tab {\cs62\b\f37 win32_library} {\cs61\i filename-list}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   469
\par \pard\plain \widctlpar \f4\fs20\lang2057 Use {\cs62\b\f37 win32_library} to specify Win32 libraries in the same way that other libraries are specified with the {\cs62\b\f37 library}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   470
 statement.  If any Win32 system libraries are specified, directories specified by the INCLUDE environmental variable will be searched for system-included header files not found in the system include paths specified for the project.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   471
\par \pard\plain \s3\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs28\lang2057 Command Line Makefile utilities
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   472
\par \pard\plain \widctlpar \f4\fs20\lang2057 Command-line makefiles created by {\cs51\f5 makmake} contain syntax which it is not possible to incorporate into makefil
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   473
es intended for the MSVC IDE.  Command-line makefiles provide extra makefile targets which enable you to use {\cs62\b\f37 nmake}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   474
 to create work directories and erase non-source files for a particular build variant of a project.  For example, WINS command-line makefiles provide the targets {\cs51\f5 makework, makeworkudeb, makeworkurel, clean, cleanudeb, cleanurel.}
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   475
\par \pard\plain \s19\li567\keep\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536 \f37\fs20\lang1024 nmake -f euhello.wins clean
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   476
\par \pard\plain \widctlpar \f4\fs20\lang2057 will attempt to delete the non-source files created during a build of all variants of the project {\f5 euhello}, while
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   477
\par \pard\plain \s19\li567\keep\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536 \f37\fs20\lang1024 nmake -f euhello.wins cleanudeb
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   478
\par \pard\plain \widctlpar \f4\fs20\lang2057 for example, will attempt only to delete non-source files created by a wide debug build of  the project.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   479
\par \pard\plain \s19\li567\keep\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536 \f37\fs20\lang1024 nmake -f euhello.wins makework
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   480
\par \pard\plain \widctlpar \f4\fs20\lang2057 will create the work directories for a build of all variants of the project {\f5 euhello}, while
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   481
\par \pard\plain \s19\li567\keep\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536 \f37\fs20\lang1024 nmake -f euhello.wins makeworkurel
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   482
\par \pard\plain \widctlpar \f4\fs20\lang2057 will create the work directories for a wide release build of the project.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   483
\par The build-specific {\cs51\f5 makework} targets are listed as dependencies of the main build-specific targets in command-line makefiles, so work directories will automatically be creat
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   484
ed when a target is built with a command-line makefile if these directories do not already exist.
fa7a3cc6effd Add sbsv1 to new structure
jjkang
parents:
diff changeset
   485
\par }