1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686
|
# sdcc.nsi - NSIS installer script for SDCC
#
# Copyright (c) 2003-2013 Borut Razem
#
# This file is part of sdcc.
#
# This software is provided 'as-is', without any express or implied
# warranty. In no event will the authors be held liable for any damages
# arising from the use of this software.
#
# Permission is granted to anyone to use this software for any purpose,
# including commercial applications, and to alter it and redistribute it
# freely, subject to the following restrictions:
#
# 1. The origin of this software must not be misrepresented; you must not
# claim that you wrote the original software. If you use this software
# in a product, an acknowledgment in the product documentation would be
# appreciated but is not required.
# 2. Altered source versions must be plainly marked as such, and must not be
# misrepresented as being the original software.
# 3. This notice may not be removed or altered from any source distribution.
#
# Borut Razem
# borut.razem@siol.net
# How to create WIN32 setup.exe
#
# - unpack WIN32 mingw daily snapshot sdcc-snapshot-i586-mingw32msvc-yyyymmdd-rrrr.zip
# to a clean directory (the option to create directories should be enabled).
# A sub directory sdcc is created (referenced as PKGDIR in continuation).
# - copy files sdcc/support/scripts/sdcc.ico and sdcc/support/scripts/sdcc.nsi
# (this file) from the sdcc Subversion snapshot to the PKGDIR directory
# - copy file COPYING and COPYING3 from the sdcc Subversion snapshot to the PKGDIR directory,
# rename it to COPYING.txt and COPYING3.txt and convert it to DOS format:
# unix2dos COPYING.txt
# unix2dos COPYING3.txt
# unix2dos doc/ChangeLog_head.txt
# unix2dos doc/README.TXT
# - run NSIS installer from PKGDIR directory:
# "c:\Program Files\NSIS\makensis.exe" -DVER_MAJOR=<SDCC_VER_MAJOR> -DVER_MINOR=<SDCC_VER_MINOR> -DVER_REVISION=<SDCC_VER_DEVEL> -DVER_BUILD=<SDCC_REVISION> sdcc.nsi
# replace <VER_XXX> with the appropriate values, for example for SDCC 2.7.4:
# <SDCC_VER_MAJOR> = 2
# <SDCC_VER_MINOR> = 7
# <SDCC_VER_DEVEL> = 4
# replace <SDCC_REVISION> with the current svn revision number.
# Define -DWIN64 if createing a 64bit package.
# - A setup file setup.exe is created in PKGDIR directory.
# Rename it to sdcc-yyyymmdd-rrrr-setup.exe and upload it
# to sdcc download repository at sourceforge.net
#
#
# How to create WIN32 release setup.exe package
#
# - unpack WIN32 mingw daily snapshot sdcc-snapshot-i586-mingw32msvc-yyyymmdd-rrrr.zip
# to a clean directory (the option to create directories should be enabled).
# A sub directory sdcc is created (referenced as PKGDIR in continuation).
# - remove the PKGDIR/doc/ directory
# - unpack sdcc-doc-yyyymmdd-rrrr.zip to the PKGDIR/doc directory
# - copy files sdcc/support/scripts/sdcc.ico and sdcc/support/scripts/sdcc.nsi
# (this file) from the sdcc Subversion snapshot to the PKGDIR directory
# - copy file COPYING and COPYING3 from the sdcc Subversion snapshot to the PKGDIR directory,
# rename it to COPYING.txt and COPYING3.txt and convert it to DOS format:
# unix2dos COPYING.txt
# unix2dos COPYING3.txt
# unix2dos doc/ChangeLog.txt
# unix2dos doc/README.TXT
# - run NSIS installer from PKGDIR directory:
# "c:\Program Files\NSIS\makensis.exe" -DFULL_DOC -DVER_MAJOR=<VER_MAJOR> -DVER_MINOR=<VER_MINOR> -DVER_REVISION=<VER_PATCH> -DVER_BUILD=<REVISION> sdcc.nsi
# replace <VER_XXX> with the appropriate values, for example for SDCC 3.0.0:
# <SDCC_VER_MAJOR> = 3
# <SDCC_VER_MINOR> = 0
# <SDCC_VER_DEVEL> = 0
# replace <SDCC_REVISION> with the current svn revision number.
# Define -DWIN64 if createing a 64bit package.
# - A setup file setup.exe is created in PKGDIR directory.
# Rename it to sdcc-x.x.x-setup.exe and upload it
# to sdcc download repository at sourceforge.net
#
# For debugging define -DSDCC.DEBUG command line option
;--------------------------------
; Debugging Macros
!ifdef SDCC.DEBUG
Var SDCC.FunctionName
Var SDCC.StrStack0
Var SDCC.StrStack1
Var SDCC.StrStack2
Var SDCC.StrStack3
Var SDCC.StrStack4
!define SDCC.PushStr "!insertmacro MACRO_SDCC_PushStr"
!macro MACRO_SDCC_PushStr NAME
StrCpy $SDCC.StrStack4 $SDCC.StrStack3
StrCpy $SDCC.StrStack3 $SDCC.StrStack2
StrCpy $SDCC.StrStack2 $SDCC.StrStack1
StrCpy $SDCC.StrStack1 $SDCC.StrStack0
StrCpy $SDCC.StrStack0 $SDCC.FunctionName
StrCpy $SDCC.FunctionName "${NAME}"
!macroend
!define SDCC.PopStr "!insertmacro MACRO_SDCC_PopStr"
!macro MACRO_SDCC_PopStr
StrCpy $SDCC.FunctionName $SDCC.StrStack0
StrCpy $SDCC.StrStack0 $SDCC.StrStack1
StrCpy $SDCC.StrStack1 $SDCC.StrStack2
StrCpy $SDCC.StrStack2 $SDCC.StrStack3
StrCpy $SDCC.StrStack3 $SDCC.StrStack4
!macroend
!endif
!define DebugMsg "!insertmacro MACRO_SDCC_DebugMsg"
!macro MACRO_SDCC_DebugMsg MSG
!ifdef SDCC.DEBUG
MessageBox MB_OK "*** $SDCC.FunctionName: ${MSG} ***"
!endif
!macroend
!define Function "!insertmacro MACRO_SDCC_Function"
!macro MACRO_SDCC_Function NAME
Function "${NAME}"
!ifdef SDCC.DEBUG
${SDCC.PushStr} ${NAME}
!endif
!macroend
!define FunctionEnd "!insertmacro MACRO_SDCC_FunctionEnd"
!macro MACRO_SDCC_FunctionEnd
!ifdef SDCC.DEBUG
${SDCC.PopStr}
!endif
FunctionEnd
!macroend
!define Section "!insertmacro MACRO_SDCC_Section"
!macro MACRO_SDCC_Section NAME ID
Section "${NAME}" "${ID}"
!ifdef SDCC.DEBUG
${SDCC.PushStr} "${NAME}"
!endif
!macroend
!define UnselectedSection "!insertmacro MACRO_SDCC_UnselectedSection"
!macro MACRO_SDCC_UnselectedSection NAME ID
Section /o ${NAME} ${ID}
!ifdef SDCC.DEBUG
${SDCC.PushStr} "${NAME}"
!endif
!macroend
!define SectionEnd "!insertmacro MACRO_SDCC_SectionEnd"
!macro MACRO_SDCC_SectionEnd
!ifdef SDCC.DEBUG
${SDCC.PopStr}
!endif
SectionEnd
!macroend
!define PRODUCT_NAME "SDCC"
; Version
!ifdef VER_MAJOR & VER_MINOR & VER_REVISION & VER_BUILD
!define PRODUCT_VERSION "${VER_MAJOR}.${VER_MINOR}.${VER_REVISION}"
!else
!define PRODUCT_VERSION "XX.XX"
!endif
SetCompressor /SOLID lzma
!define SDCC_ROOT "."
!define DEV_ROOT "${SDCC_ROOT}"
InstType "Full (Bin, ucSim, SDCDB, Doc, Lib, Src)"
InstType "Medium (Bin, ucSim, SDCDB, Doc, Lib)"
InstType "Compact (Bin, ucSim, SDCDB, Doc)"
;--------------------------------
; Configuration
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define UNINST_ROOT_KEY HKLM
!define SDCC_ROOT_KEY HKLM
;--------------------------------
; Header Files
!include MUI2.nsh
!include WordFunc.nsh
!include StrFunc.nsh
!include WinVer.nsh
!include x64.nsh
${StrStr}
${UnStrStr}
;--------------------------------
; Functions
!ifdef VER_MAJOR & VER_MINOR & VER_REVISION & VER_BUILD
!insertmacro VersionCompare
!endif
;--------------------------------
; Variables
Var SDCC.PathToRemove
;--------------------------------
; Configuration
; MUI Settings
!define MUI_ABORTWARNING
!define MUI_ICON ".\sdcc.ico"
; Welcome page
!define MUI_WELCOMEPAGE_TEXT "This wizard will guide you through the installation of $(^NameDA).$\r$\n$\r$\nIt is recommended that you close all other applications before starting Setup. This will make it possible to update relevant system files without having to reboot your computer.$\r$\n$\r$\n$_CLICK"
!insertmacro MUI_PAGE_WELCOME
; License page
!insertmacro MUI_PAGE_LICENSE "${SDCC_ROOT}\COPYING.txt"
; Uninstall/reinstall page
!ifdef VER_MAJOR & VER_MINOR & VER_REVISION & VER_BUILD
Page custom SDCC.PageReinstall SDCC.PageLeaveReinstall
!endif
; StartMenu page
!define MUI_STARTMENUPAGE_DEFAULTFOLDER ${PRODUCT_NAME}
!define MUI_STARTMENUPAGE_REGISTRY_ROOT ${UNINST_ROOT_KEY}
!define MUI_STARTMENUPAGE_REGISTRY_KEY "${PRODUCT_UNINST_KEY}"
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "NSIS:StartMenuDir"
!define MUI_STARTMENUPAGE_NODISABLE
Var MUI_STARTMENUPAGE_VARIABLE
!insertmacro MUI_PAGE_STARTMENU Application $MUI_STARTMENUPAGE_VARIABLE
; Components page
!define MUI_COMPONENTSPAGE_SMALLDESC
!insertmacro MUI_PAGE_COMPONENTS
; Directory page
!insertmacro MUI_PAGE_DIRECTORY
; Instfiles page
!define MUI_PAGE_CUSTOMFUNCTION_LEAVE "SDCC.InstFilesLeave"
!insertmacro MUI_PAGE_INSTFILES
${Function} SDCC.InstFilesLeave
; Remove old path if reinstallation
${If} $SDCC.PathToRemove != ""
${DebugMsg} "removing path $SDCC.PathToRemove"
Push $SDCC.PathToRemove
Call SDCC.RemoveFromPath
${EndIf}
${FunctionEnd}
; Finish page - add to path
!define MUI_FINISHPAGE_TEXT "Confirm the checkbox if you want to add SDCC binary directory to the PATH environment variable"
!define MUI_FINISHPAGE_SHOWREADME_TEXT "Add $INSTDIR\bin to the PATH"
!define MUI_FINISHPAGE_SHOWREADME_FUNCTION SDCC.AddBinToPath
!define MUI_FINISHPAGE_SHOWREADME
!define MUI_FINISHPAGE_BUTTON "Next"
!insertmacro MUI_PAGE_FINISH
; Finish page - reboot
!insertmacro MUI_PAGE_FINISH
${Function} SDCC.AddBinToPath
; Add new path
${DebugMsg} "adding path $INSTDIR\bin"
Push "$INSTDIR\bin"
Call SDCC.AddToPath
${FunctionEnd}
; Uninstaller pages
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_UNPAGE_FINISH
; Language files
!insertmacro MUI_LANGUAGE "English"
Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
BrandingText ""
OutFile "setup.exe"
RequestExecutionLevel admin ;Require admin rights on NT6+ (When UAC is turned on)
;;;;ShowInstDetails show
;;;;ShowUnInstDetails show
${Function} .onInit
${DebugMsg} "Pre INSTDIR = $INSTDIR"
${If} ${RunningX64}
!ifdef WIN64
StrCpy $INSTDIR "$PROGRAMFILES64\${PRODUCT_NAME}"
SetRegView 64
!else
StrCpy $INSTDIR "$PROGRAMFILES\${PRODUCT_NAME}"
SetRegView 32
!endif
${Else}
!ifdef WIN64
MessageBox MB_OK|MB_ICONSTOP \
"This installation package is not supported on this platform. Contact your application vendor."
Abort
!endif
StrCpy $INSTDIR "$PROGRAMFILES\${PRODUCT_NAME}"
${Endif}
!ifndef VER_MAJOR & VER_MINOR & VER_REVISION & VER_BUILD
; Old unistallation method
; Uninstall the old version, if present
ReadRegStr $R0 ${UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString"
${If} $R0 != ""
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION \
"$(^Name) is already installed. $\n$\nClick 'OK' to remove the previous version or 'Cancel' to cancel this upgrade." \
IDOK +2
Abort
; Run the uninstaller
ClearErrors
ExecWait '$R0'
${Else}
; Install the new version
MessageBox MB_YESNO|MB_ICONQUESTION "This will install $(^Name). Do you wish to continue?" \
IDYES +2
Abort
${Endif}
!else
; If the registry key exists it is an uninstallation or reinstallation:
; take the old installation directory
Push $R0
ReadRegStr $R0 ${UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "InstallLocation"
${IfNot} ${Errors}
StrCpy $INSTDIR $R0
StrCpy $SDCC.PathToRemove "$INSTDIR\bin"
${EndIf}
Pop $R0
!endif
${DebugMsg} "Post INSTDIR = $INSTDIR"
${FunctionEnd}
${Function} un.onInit
${DebugMsg} "Pre INSTDIR = $INSTDIR"
${If} ${RunningX64}
!ifdef WIN64
SetRegView 64
!else
SetRegView 32
!endif
${Endif}
Push $R0
ReadRegStr $R0 ${UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "InstallLocation"
${IfNot} ${Errors}
StrCpy $INSTDIR $R0
${EndIf}
Pop $R0
${DebugMsg} "Post INSTDIR = $INSTDIR"
${FunctionEnd}
${Section} -Common SECCOMMON
SetOutPath "$INSTDIR"
File ".\sdcc.ico"
File "${SDCC_ROOT}\COPYING.txt"
File "${SDCC_ROOT}\COPYING3.txt"
${SectionEnd}
${Section} "SDCC application files" SEC01
SectionIn 1 2 3 RO
SetOutPath "$INSTDIR\bin"
File "${SDCC_ROOT}\bin\sdasgb.exe"
File "${SDCC_ROOT}\bin\sdas6808.exe"
File "${SDCC_ROOT}\bin\sdasz80.exe"
File "${SDCC_ROOT}\bin\sdas8051.exe"
File "${SDCC_ROOT}\bin\sdas390.exe"
File "${SDCC_ROOT}\bin\sdasrab.exe"
File "${SDCC_ROOT}\bin\sdasstm8.exe"
File "${SDCC_ROOT}\bin\sdaspdk13.exe"
File "${SDCC_ROOT}\bin\sdaspdk14.exe"
File "${SDCC_ROOT}\bin\sdaspdk15.exe"
File "${SDCC_ROOT}\bin\sdastlcs90.exe"
File "${SDCC_ROOT}\bin\sdas6500.exe"
File "${SDCC_ROOT}\bin\sdld.exe"
File "${SDCC_ROOT}\bin\sdldgb.exe"
File "${SDCC_ROOT}\bin\sdld6808.exe"
File "${SDCC_ROOT}\bin\sdldz80.exe"
File "${SDCC_ROOT}\bin\sdldstm8.exe"
File "${SDCC_ROOT}\bin\sdldpdk.exe"
File "${SDCC_ROOT}\bin\sdar.exe"
File "${SDCC_ROOT}\bin\sdranlib.exe"
File "${SDCC_ROOT}\bin\sdnm.exe"
File "${SDCC_ROOT}\bin\sdobjcopy.exe"
File "${SDCC_ROOT}\bin\makebin.exe"
File "${SDCC_ROOT}\bin\packihx.exe"
File "${SDCC_ROOT}\bin\sdcc.exe"
File "${SDCC_ROOT}\bin\sdcpp.exe"
File "${SDCC_ROOT}\bin\as2gbmap.cmd"
File "${SDCC_ROOT}\bin\readline5.dll"
!ifdef WIN64
File "${SDCC_ROOT}\bin\libgcc_s_*-1.dll"
File "${SDCC_ROOT}\bin\libstdc++-6.dll"
File "${SDCC_ROOT}\bin\libwinpthread-1.dll"
!endif
${SectionEnd}
${Section} "ucSim application files" SEC02
SectionIn 1 2 3
SetOutPath "$INSTDIR\bin"
File "${SDCC_ROOT}\bin\s51.exe"
File "${SDCC_ROOT}\bin\shc08.exe"
File "${SDCC_ROOT}\bin\sz80.exe"
File "${SDCC_ROOT}\bin\sstm8.exe"
${SectionEnd}
${Section} "SDCDB files" SEC03
SectionIn 1 2 3
File "${SDCC_ROOT}\bin\sdcdb.exe"
File "${SDCC_ROOT}\bin\sdcdb.el"
File "${SDCC_ROOT}\bin\sdcdbsrc.el"
${SectionEnd}
${Section} "SDCC documentation" SEC04
SectionIn 1 2 3
SetOutPath "$INSTDIR\doc"
!ifdef FULL_DOC
File /r "${SDCC_ROOT}\doc\*"
!else
File "${SDCC_ROOT}\doc\ChangeLog_head.txt"
File "${SDCC_ROOT}\doc\README.TXT"
!endif
${SectionEnd}
${Section} "SDCC include files" SEC05
SectionIn 1 2
SetOutPath "$INSTDIR\include\asm\default"
File "${DEV_ROOT}\include\asm\default\features.h"
SetOutPath "$INSTDIR\include\asm\ds390"
File "${DEV_ROOT}\include\asm\ds390\features.h"
SetOutPath "$INSTDIR\include\asm\sm83"
File "${DEV_ROOT}\include\asm\sm83\features.h"
SetOutPath "$INSTDIR\include\asm\mcs51"
File "${DEV_ROOT}\include\asm\mcs51\features.h"
SetOutPath "$INSTDIR\include\asm\pic14"
File "${DEV_ROOT}\include\asm\pic14\features.h"
SetOutPath "$INSTDIR\include\asm\pic16"
File "${DEV_ROOT}\include\asm\pic16\features.h"
SetOutPath "$INSTDIR\include\asm\z80"
File "${DEV_ROOT}\include\asm\z80\features.h"
SetOutPath "$INSTDIR\include\asm\r2k"
File "${DEV_ROOT}\include\asm\r2k\features.h"
SetOutPath "$INSTDIR\include\asm\r3ka"
File "${DEV_ROOT}\include\asm\r3ka\features.h"
SetOutPath "$INSTDIR\include\asm\stm8"
File "${DEV_ROOT}\include\asm\stm8\features.h"
SetOutPath "$INSTDIR\include\ds390"
File "${DEV_ROOT}\include\ds390\*.h"
SetOutPath "$INSTDIR\include\ds400"
File "${DEV_ROOT}\include\ds400\*.h"
SetOutPath "$INSTDIR\include\hc08"
File "${DEV_ROOT}\include\hc08\*.h"
SetOutPath "$INSTDIR\include\mcs51"
File "${DEV_ROOT}\include\mcs51\*.h"
SetOutPath "$INSTDIR\include\pic14"
File "${DEV_ROOT}\include\pic14\*.h"
File "${DEV_ROOT}\include\pic14\*.txt"
File "${DEV_ROOT}\include\pic14\*.inc"
SetOutPath "$INSTDIR\include\pic16"
File "${DEV_ROOT}\include\pic16\*.h"
File "${DEV_ROOT}\include\pic16\*.txt"
SetOutPath "$INSTDIR\include\z180"
File "${DEV_ROOT}\include\z180\*.h"
SetOutPath "$INSTDIR\include"
File "${DEV_ROOT}\include\*.h"
SetOutPath "$INSTDIR\non-free\include\pic14"
File "${DEV_ROOT}\non-free\include\pic14\*.h"
SetOutPath "$INSTDIR\non-free\include\pic16"
File "${DEV_ROOT}\non-free\include\pic16\*.h"
${SectionEnd}
${Section} "SDCC DS390 library" SEC06
SectionIn 1 2
SetOutPath "$INSTDIR\lib\ds390"
File "${DEV_ROOT}\lib\ds390\*.*"
${SectionEnd}
${Section} "SDCC DS400 library" SEC07
SectionIn 1 2
SetOutPath "$INSTDIR\lib\ds400"
File "${DEV_ROOT}\lib\ds400\*.*"
${SectionEnd}
${Section} "SDCC SM83 library" SEC08
SectionIn 1 2
SetOutPath "$INSTDIR\lib\sm83"
File "${DEV_ROOT}\lib\sm83\*.*"
${SectionEnd}
${Section} "SDCC Z180 library" SEC09
SectionIn 1 2
SetOutPath "$INSTDIR\lib\z180"
File "${DEV_ROOT}\lib\z180\*.*"
${SectionEnd}
${Section} "SDCC Rabbit 2000 library" SEC10
SectionIn 1 2
SetOutPath "$INSTDIR\lib\r2k"
File "${DEV_ROOT}\lib\r2k\*.*"
${SectionEnd}
${Section} "SDCC Rabbit 3000A library" SEC11
SectionIn 1 2
SetOutPath "$INSTDIR\lib\r3ka"
File "${DEV_ROOT}\lib\r3ka\*.*"
${SectionEnd}
${Section} "SDCC Z80 library" SEC12
SectionIn 1 2
SetOutPath "$INSTDIR\lib\z80"
File "${DEV_ROOT}\lib\z80\*.*"
${SectionEnd}
${Section} "SDCC mcs51 small model library" SEC13
SectionIn 1 2
SetOutPath "$INSTDIR\lib\small"
File "${DEV_ROOT}\lib\small\*.*"
${SectionEnd}
${Section} "SDCC mcs51 medium model library" SEC14
SectionIn 1 2
SetOutPath "$INSTDIR\lib\medium"
File "${DEV_ROOT}\lib\medium\*.*"
${SectionEnd}
${Section} "SDCC mcs51 large model library" SEC15
SectionIn 1 2
SetOutPath "$INSTDIR\lib\large"
File "${DEV_ROOT}\lib\large\*.*"
${SectionEnd}
${Section} "SDCC mcs51 huge model library" SEC16
SectionIn 1 2
SetOutPath "$INSTDIR\lib\huge"
File "${DEV_ROOT}\lib\huge\*.*"
${SectionEnd}
${Section} "SDCC mcs51 small-stack-auto model library" SEC17
SectionIn 1 2
SetOutPath "$INSTDIR\lib\small-stack-auto"
File "${DEV_ROOT}\lib\small-stack-auto\*.*"
${SectionEnd}
${Section} "SDCC mcs51 large-stack-auto model library" SEC18
SectionIn 1 2
SetOutPath "$INSTDIR\lib\large-stack-auto"
File "${DEV_ROOT}\lib\large-stack-auto\*.*"
${SectionEnd}
${Section} "SDCC HC08 library" SEC19
SectionIn 1 2
SetOutPath "$INSTDIR\lib\hc08"
File "${DEV_ROOT}\lib\hc08\*.*"
${SectionEnd}
${Section} "SDCC S08 library" SEC20
SectionIn 1 2
SetOutPath "$INSTDIR\lib\s08"
File "${DEV_ROOT}\lib\s08\*.*"
${SectionEnd}
${Section} "SDCC PIC16 library" SEC21
SectionIn 1 2
SetOutPath "$INSTDIR\lib\pic16"
File "${DEV_ROOT}\lib\pic16\*.o"
File "${DEV_ROOT}\lib\pic16\*.lib"
SetOutPath "$INSTDIR\non-free\lib\pic16"
File "${DEV_ROOT}\non-free\lib\pic16\*.lib"
${SectionEnd}
${Section} "SDCC PIC14 library" SEC22
SectionIn 1 2
SetOutPath "$INSTDIR\lib\pic14"
File "${DEV_ROOT}\lib\pic14\*.lib"
SetOutPath "$INSTDIR\non-free\lib\pic14"
File "${DEV_ROOT}\non-free\lib\pic14\*.lib"
${SectionEnd}
${Section} "SDCC STM8 small model library" SEC23
SectionIn 1 2
SetOutPath "$INSTDIR\lib\stm8"
File "${DEV_ROOT}\lib\stm8\*.*"
${SectionEnd}
${Section} "SDCC TLCS90 library" SEC24
SectionIn 1 2
SetOutPath "$INSTDIR\lib\tlcs90"
File "${DEV_ROOT}\lib\tlcs90\*.*"
${SectionEnd}
${Section} "SDCC library sources" SEC25
SectionIn 1
SetOutPath "$INSTDIR\lib\src\ds390\examples"
File "${DEV_ROOT}\lib\src\ds390\examples\MOVED"
SetOutPath "$INSTDIR\lib\src\ds390"
File "${DEV_ROOT}\lib\src\ds390\*.c"
# File "${DEV_ROOT}\lib\src\ds390\Makefile"
SetOutPath "$INSTDIR\lib\src\ds400"
File "${DEV_ROOT}\lib\src\ds400\*.c"
# File "${DEV_ROOT}\lib\src\ds400\Makefile"
SetOutPath "$INSTDIR\lib\src\sm83"
File "${DEV_ROOT}\lib\src\sm83\*.s"
# File "${DEV_ROOT}\lib\src\sm83\Makefile"
SetOutPath "$INSTDIR\lib\src\z80"
File "${DEV_ROOT}\lib\src\z80\*.s"
# File "${DEV_ROOT}\lib\src\z80\Makefile"
SetOutPath "$INSTDIR\lib\src\z180"
File "${DEV_ROOT}\lib\src\z180\*.s"
# File "${DEV_ROOT}\lib\src\z180\Makefile"
SetOutPath "$INSTDIR\lib\src\r2k"
File "${DEV_ROOT}\lib\src\r2k\*.s"
# File "${DEV_ROOT}\lib\src\z180\Makefile"
SetOutPath "$INSTDIR\lib\src\r3ka"
File "${DEV_ROOT}\lib\src\r3ka\*.s"
# File "${DEV_ROOT}\lib\src\r3ka\Makefile"
SetOutPath "$INSTDIR\lib\src\hc08"
File "${DEV_ROOT}\lib\src\hc08\*.c"
# File "${DEV_ROOT}\lib\src\hc08\Makefile"
SetOutPath "$INSTDIR\lib\src\s08"
File "${DEV_ROOT}\lib\src\s08\*.c"
# File "${DEV_ROOT}\lib\src\s08\Makefile"
SetOutPath "$INSTDIR\lib\src\stm8"
# File "${DEV_ROOT}\lib\src\stm8\Makefile"
SetOutPath "$INSTDIR\lib\src\tlcs90"
File "${DEV_ROOT}\lib\src\tlcs90\*.s"
# File "${DEV_ROOT}\lib\src\tlcs90\Makefile"
SetOutPath "$INSTDIR\lib\src\mos6502"
File "${DEV_ROOT}\lib\src\mos6502\*.s"
# File "${DEV_ROOT}\lib\src\mos6502\Makefile"
SetOutPath "$INSTDIR\lib\src\mcs51"
File "${DEV_ROOT}\lib\src\mcs51\*.asm"
# File "${DEV_ROOT}\lib\src\mcs51\Makefile"
SetOutPath "$INSTDIR\lib\src\small"
# File "${DEV_ROOT}\lib\src\small\Makefile"
SetOutPath "$INSTDIR\lib\src\medium"
# File "${DEV_ROOT}\lib\src\medium\Makefile"
SetOutPath "$INSTDIR\lib\src\large"
# File "${DEV_ROOT}\lib\src\large\Makefile"
SetOutPath "$INSTDIR\lib\src\huge"
# File "${DEV_ROOT}\lib\src\huge\Makefile"
SetOutPath "$INSTDIR\lib\src\pic14"
# File "${DEV_ROOT}\lib\src\pic14\configure"
# File "${DEV_ROOT}\lib\src\pic14\configure.in"
# File "${DEV_ROOT}\lib\src\pic14\GPL"
# File "${DEV_ROOT}\lib\src\pic14\LGPL"
# File "${DEV_ROOT}\lib\src\pic14\Makefile"
# File "${DEV_ROOT}\lib\src\pic14\Makefile.common"
# File "${DEV_ROOT}\lib\src\pic14\Makefile.common.in"
# File "${DEV_ROOT}\lib\src\pic14\Makefile.rules"
# File "${DEV_ROOT}\lib\src\pic14\Makefile.subdir"
# File "${DEV_ROOT}\lib\src\pic14\NEWS"
# File "${DEV_ROOT}\lib\src\pic14\README"
File "${DEV_ROOT}\lib\src\pic14\TEMPLATE.c"
File "${DEV_ROOT}\lib\src\pic14\TEMPLATE.S"
SetOutPath "$INSTDIR\lib\src\pic14\libsdcc\regular"
File "${DEV_ROOT}\lib\src\pic14\libsdcc\regular\*.c"
File "${DEV_ROOT}\lib\src\pic14\libsdcc\regular\*.S"
File "${DEV_ROOT}\lib\src\pic14\libsdcc\regular\*.inc"
# File "${DEV_ROOT}\lib\src\pic14\libsdcc\Makefile"
SetOutPath "$INSTDIR\lib\src\pic14\libsdcc\enhanced"
File "${DEV_ROOT}\lib\src\pic14\libsdcc\enhanced\*.S"
File "${DEV_ROOT}\lib\src\pic14\libsdcc\enhanced\*.inc"
# File "${DEV_ROOT}\lib\src\pic14\libsdcc\Makefile"
SetOutPath "$INSTDIR\non-free\lib\src\pic14\libdev"
File "${DEV_ROOT}\non-free\lib\src\pic14\libdev\*.c"
# File "${DEV_ROOT}\non-free\lib\src\pic14\libdev\Makefile"
SetOutPath "$INSTDIR\lib\src\pic14\libm"
# File "${DEV_ROOT}\lib\src\pic14\libm\*.c"
SetOutPath "$INSTDIR\lib\src\pic16"
# File "${DEV_ROOT}\lib\src\pic16\configure"
# File "${DEV_ROOT}\lib\src\pic16\configure.in"
# File "${DEV_ROOT}\lib\src\pic16\COPYING"
# File "${DEV_ROOT}\lib\src\pic16\Makefile"
# File "${DEV_ROOT}\lib\src\pic16\Makefile.common"
# File "${DEV_ROOT}\lib\src\pic16\Makefile.common.in"
# File "${DEV_ROOT}\lib\src\pic16\Makefile.rules"
# File "${DEV_ROOT}\lib\src\pic16\Makefile.subdir"
# File "${DEV_ROOT}\lib\src\pic16\pics.all"
# File "${DEV_ROOT}\lib\src\pic16\pics.build"
# File "${DEV_ROOT}\lib\src\pic16\README"
SetOutPath "$INSTDIR\lib\src\pic16\debug"
# File "${DEV_ROOT}\lib\src\pic16\debug\Makefile"
SetOutPath "$INSTDIR\lib\src\pic16\debug\gstack"
# File "${DEV_ROOT}\lib\src\pic16\debug\gstack\Makefile"
File "${DEV_ROOT}\lib\src\pic16\debug\gstack\*.c"
SetOutPath "$INSTDIR\lib\src\pic16\libc"
# File "${DEV_ROOT}\lib\src\pic16\libc\Makefile"
SetOutPath "$INSTDIR\lib\src\pic16\libc\ctype"
File "${DEV_ROOT}\lib\src\pic16\libc\ctype\*.c"
# File "${DEV_ROOT}\lib\src\pic16\libc\ctype\Makefile"
SetOutPath "$INSTDIR\lib\src\pic16\libc\delay"
File "${DEV_ROOT}\lib\src\pic16\libc\delay\*.S"
# File "${DEV_ROOT}\lib\src\pic16\libc\delay\Makefile"
SetOutPath "$INSTDIR\lib\src\pic16\libc\stdio"
File "${DEV_ROOT}\lib\src\pic16\libc\stdio\*.c"
# File "${DEV_ROOT}\lib\src\pic16\libc\stdio\Makefile"
SetOutPath "$INSTDIR\lib\src\pic16\libc\stdlib"
File "${DEV_ROOT}\lib\src\pic16\libc\stdlib\*.c"
File "${DEV_ROOT}\lib\src\pic16\libc\stdlib\*.S"
# File "${DEV_ROOT}\lib\src\pic16\libc\stdlib\Makefile"
SetOutPath "$INSTDIR\lib\src\pic16\libc\string"
File "${DEV_ROOT}\lib\src\pic16\libc\string\*.c"
# File "${DEV_ROOT}\lib\src\pic16\libc\string\Makefile"
SetOutPath "$INSTDIR\lib\src\pic16\libc\utils"
File "${DEV_ROOT}\lib\src\pic16\libc\utils\*.S"
# File "${DEV_ROOT}\lib\src\pic16\libc\utils\Makefile"
SetOutPath "$INSTDIR\non-free\lib\src\pic16\libdev"
File "${DEV_ROOT}\non-free\lib\src\pic16\libdev\*.c"
# File "${DEV_ROOT}\non-free\lib\src\pic16\libdev\Makefile"
SetOutPath "$INSTDIR\lib\src\pic16\libio"
File "${DEV_ROOT}\lib\src\pic16\libio\*.ignore"
# File "${DEV_ROOT}\lib\src\pic16\libio\Makefile"
SetOutPath "$INSTDIR\lib\src\pic16\libio\adc"
File "${DEV_ROOT}\lib\src\pic16\libio\adc\*.c"
# File "${DEV_ROOT}\lib\src\pic16\libio\adc\Makefile"
SetOutPath "$INSTDIR\lib\src\pic16\libio\i2c"
File "${DEV_ROOT}\lib\src\pic16\libio\i2c\*.c"
# File "${DEV_ROOT}\lib\src\pic16\libio\i2c\Makefile"
SetOutPath "$INSTDIR\lib\src\pic16\libio\usart"
File "${DEV_ROOT}\lib\src\pic16\libio\usart\*.c"
# File "${DEV_ROOT}\lib\src\pic16\libio\usart\Makefile"
SetOutPath "$INSTDIR\lib\src\pic16\libm"
File "${DEV_ROOT}\lib\src\pic16\libm\*.c"
# File "${DEV_ROOT}\lib\src\pic16\libm\Makefile"
SetOutPath "$INSTDIR\lib\src\pic16\libsdcc"
# File "${DEV_ROOT}\lib\src\pic16\libsdcc\Makefile"
SetOutPath "$INSTDIR\lib\src\pic16\libsdcc\char"
File "${DEV_ROOT}\lib\src\pic16\libsdcc\char\*.c"
# File "${DEV_ROOT}\lib\src\pic16\libsdcc\char\Makefile"
SetOutPath "$INSTDIR\lib\src\pic16\libsdcc\fixed16x16"
File "${DEV_ROOT}\lib\src\pic16\libsdcc\fixed16x16\*.c"
File "${DEV_ROOT}\lib\src\pic16\libsdcc\fixed16x16\*.S"
# File "${DEV_ROOT}\lib\src\pic16\libsdcc\fixed16x16\Makefile"
SetOutPath "$INSTDIR\lib\src\pic16\libsdcc\float"
File "${DEV_ROOT}\lib\src\pic16\libsdcc\float\*.c"
# File "${DEV_ROOT}\lib\src\pic16\libsdcc\float\Makefile"
SetOutPath "$INSTDIR\lib\src\pic16\libsdcc\gptr"
File "${DEV_ROOT}\lib\src\pic16\libsdcc\gptr\*.c"
# File "${DEV_ROOT}\lib\src\pic16\libsdcc\gptr\Makefile"
SetOutPath "$INSTDIR\lib\src\pic16\libsdcc\int"
File "${DEV_ROOT}\lib\src\pic16\libsdcc\int\*.c"
# File "${DEV_ROOT}\lib\src\pic16\libsdcc\int\Makefile"
SetOutPath "$INSTDIR\lib\src\pic16\libsdcc\long"
File "${DEV_ROOT}\lib\src\pic16\libsdcc\long\*.c"
# File "${DEV_ROOT}\lib\src\pic16\libsdcc\long\Makefile"
SetOutPath "$INSTDIR\lib\src\pic16\libsdcc\lregs"
File "${DEV_ROOT}\lib\src\pic16\libsdcc\lregs\*.c"
# File "${DEV_ROOT}\lib\src\pic16\libsdcc\lregs\Makefile"
SetOutPath "$INSTDIR\lib\src\pic16\libsdcc\stack"
File "${DEV_ROOT}\lib\src\pic16\libsdcc\stack\*.S"
SetOutPath "$INSTDIR\lib\src\pic16\startup"
File "${DEV_ROOT}\lib\src\pic16\startup\*.c"
# File "${DEV_ROOT}\lib\src\pic16\startup\Makefile"
# File "${DEV_ROOT}\lib\src\pic16\startup\README"
SetOutPath "$INSTDIR\lib\src"
File "${DEV_ROOT}\lib\src\*.c"
${SectionEnd}
${Section} "SDCC STM8 large model library" SEC26
SectionIn 1 2
SetOutPath "$INSTDIR\lib\stm8-large"
File "${DEV_ROOT}\lib\stm8-large\*.*"
${SectionEnd}
${Section} "SDCC EZ80_Z80 library" SEC27
SectionIn 1 2
SetOutPath "$INSTDIR\lib\ez80_z80"
File "${DEV_ROOT}\lib\ez80_z80\*.*"
${SectionEnd}
${Section} "SDCC PDK13 library" SEC28
SectionIn 1 2
SetOutPath "$INSTDIR\lib\pdk13"
File "${DEV_ROOT}\lib\pdk13\*.*"
${SectionEnd}
${Section} "SDCC PDK14 library" SEC29
SectionIn 1 2
SetOutPath "$INSTDIR\lib\pdk14"
File "${DEV_ROOT}\lib\pdk14\*.*"
${SectionEnd}
${Section} "SDCC PDK15 library" SEC30
SectionIn 1 2
SetOutPath "$INSTDIR\lib\pdk15"
File "${DEV_ROOT}\lib\pdk15\*.*"
${SectionEnd}
${Section} "SDCC PDK15 stack-auto library" SEC31
SectionIn 1 2
SetOutPath "$INSTDIR\lib\pdk15-stack-auto"
File "${DEV_ROOT}\lib\pdk15-stack-auto\*.*"
${SectionEnd}
${Section} "SDCC Z80N library" SEC32
SectionIn 1 2
SetOutPath "$INSTDIR\lib\z80n"
File "${DEV_ROOT}\lib\z80n\*.*"
${SectionEnd}
${Section} "SDCC Rabbit 2000A library" SEC33
SectionIn 1 2
SetOutPath "$INSTDIR\lib\r2ka"
File "${DEV_ROOT}\lib\r2ka\*.*"
${SectionEnd}
${Section} "SDCC MOS 6502 library" SEC34
SectionIn 1 2
SetOutPath "$INSTDIR\lib\mos6502"
File "${DEV_ROOT}\lib\mos6502\*.*"
${SectionEnd}
;--------------------------------
;Descriptions
;Language strings
LangString DESC_SEC01 ${LANG_ENGLISH} "SDCC application files"
LangString DESC_SEC02 ${LANG_ENGLISH} "ucSim application files"
LangString DESC_SEC03 ${LANG_ENGLISH} "SDCDB files"
LangString DESC_SEC04 ${LANG_ENGLISH} "SDCC documentation"
LangString DESC_SEC05 ${LANG_ENGLISH} "SDCC include files"
LangString DESC_SEC06 ${LANG_ENGLISH} "SDCC DS390 library"
LangString DESC_SEC07 ${LANG_ENGLISH} "SDCC DS400 library"
LangString DESC_SEC08 ${LANG_ENGLISH} "SDCC SM83 library"
LangString DESC_SEC09 ${LANG_ENGLISH} "SDCC Z180 library"
LangString DESC_SEC10 ${LANG_ENGLISH} "SDCC Rabbit 2000 library"
LangString DESC_SEC11 ${LANG_ENGLISH} "SDCC Rabbit 3000A library"
LangString DESC_SEC12 ${LANG_ENGLISH} "SDCC Z80 library"
LangString DESC_SEC13 ${LANG_ENGLISH} "SDCC mcs51 small model library"
LangString DESC_SEC14 ${LANG_ENGLISH} "SDCC mcs51 medium model library"
LangString DESC_SEC15 ${LANG_ENGLISH} "SDCC mcs51 large model library"
LangString DESC_SEC16 ${LANG_ENGLISH} "SDCC mcs51 huge model library"
LangString DESC_SEC17 ${LANG_ENGLISH} "SDCC mcs51 small-stack-auto model library"
LangString DESC_SEC18 ${LANG_ENGLISH} "SDCC mcs51 large-stack-auto model library"
LangString DESC_SEC19 ${LANG_ENGLISH} "SDCC HC08 library"
LangString DESC_SEC20 ${LANG_ENGLISH} "SDCC S08 library"
LangString DESC_SEC21 ${LANG_ENGLISH} "SDCC PIC16 library"
LangString DESC_SEC22 ${LANG_ENGLISH} "SDCC PIC14 library"
LangString DESC_SEC23 ${LANG_ENGLISH} "SDCC STM8 small library"
LangString DESC_SEC24 ${LANG_ENGLISH} "SDCC TLCS90 library"
LangString DESC_SEC25 ${LANG_ENGLISH} "SDCC library sources"
LangString DESC_SEC26 ${LANG_ENGLISH} "SDCC STM8 large model library"
LangString DESC_SEC27 ${LANG_ENGLISH} "SDCC EZ80_Z80 library"
LangString DESC_SEC28 ${LANG_ENGLISH} "SDCC PDK13 library"
LangString DESC_SEC29 ${LANG_ENGLISH} "SDCC PDK14 library"
LangString DESC_SEC30 ${LANG_ENGLISH} "SDCC PDK15 library"
LangString DESC_SEC31 ${LANG_ENGLISH} "SDCC PDK15 stack-auto library"
LangString DESC_SEC32 ${LANG_ENGLISH} "SDCC Z80N library"
LangString DESC_SEC33 ${LANG_ENGLISH} "SDCC Rabbit 2000A library"
LangString DESC_SEC34 ${LANG_ENGLISH} "SDCC MOS 6502 library"
;Assign language strings to sections
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${SEC01} $(DESC_SEC01)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC02} $(DESC_SEC02)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC03} $(DESC_SEC03)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC04} $(DESC_SEC04)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC05} $(DESC_SEC05)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC06} $(DESC_SEC06)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC07} $(DESC_SEC07)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC08} $(DESC_SEC08)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC09} $(DESC_SEC09)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC10} $(DESC_SEC10)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC11} $(DESC_SEC11)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC12} $(DESC_SEC12)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC27} $(DESC_SEC27)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC13} $(DESC_SEC13)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC14} $(DESC_SEC14)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC15} $(DESC_SEC15)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC16} $(DESC_SEC16)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC17} $(DESC_SEC17)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC18} $(DESC_SEC18)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC19} $(DESC_SEC19)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC20} $(DESC_SEC20)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC21} $(DESC_SEC21)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC22} $(DESC_SEC22)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC23} $(DESC_SEC23)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC26} $(DESC_SEC26)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC24} $(DESC_SEC24)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC25} $(DESC_SEC25)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC16} $(DESC_SEC26)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC17} $(DESC_SEC27)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC18} $(DESC_SEC28)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC19} $(DESC_SEC29)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC20} $(DESC_SEC30)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC31} $(DESC_SEC31)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC32} $(DESC_SEC32)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC33} $(DESC_SEC33)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC34} $(DESC_SEC34)
!insertmacro MUI_FUNCTION_DESCRIPTION_END
;--------------------------------
${Section} -Icons SECICONS
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
CreateDirectory "$SMPROGRAMS\$MUI_STARTMENUPAGE_VARIABLE"
CreateShortCut "$SMPROGRAMS\$MUI_STARTMENUPAGE_VARIABLE\Uninstall SDCC.lnk" "$INSTDIR\uninstall.exe"
!ifdef FULL_DOC
CreateShortCut "$SMPROGRAMS\$MUI_STARTMENUPAGE_VARIABLE\Documentation.lnk" "$INSTDIR\doc\sdccman.pdf" "" "$INSTDIR\sdcc.ico" "" "" "" ""
CreateShortCut "$SMPROGRAMS\$MUI_STARTMENUPAGE_VARIABLE\README.lnk" "$INSTDIR\doc\README.TXT" "" "$INSTDIR\sdcc.ico" "" "" "" ""
CreateShortCut "$SMPROGRAMS\$MUI_STARTMENUPAGE_VARIABLE\Change Log.lnk" "$INSTDIR\doc\ChangeLog.txt" "" "$INSTDIR\sdcc.ico" "" "" "" ""
!else
CreateShortCut "$SMPROGRAMS\$MUI_STARTMENUPAGE_VARIABLE\Documentation.lnk" "$INSTDIR\doc\README.TXT" "" "$INSTDIR\sdcc.ico" "" "" "" ""
CreateShortCut "$SMPROGRAMS\$MUI_STARTMENUPAGE_VARIABLE\Change Log.lnk" "$INSTDIR\doc\ChangeLog_head.txt" "" "$INSTDIR\sdcc.ico" "" "" "" ""
!endif
CreateShortCut "$SMPROGRAMS\$MUI_STARTMENUPAGE_VARIABLE\GPL 2 License.lnk" "$INSTDIR\COPYING.txt"
!insertmacro MUI_STARTMENU_WRITE_END
${SectionEnd}
${Section} -INI SECINI
WriteIniStr "$SMPROGRAMS\$MUI_STARTMENUPAGE_VARIABLE\SDCC on the Web.url" "InternetShortcut" "URL" "http://sdcc.sourceforge.net/"
!ifdef FULL_DOC
WriteIniStr "$SMPROGRAMS\$MUI_STARTMENUPAGE_VARIABLE\Latest Changes.url" "InternetShortcut" "URL" "http://svn.code.sf.net/p/sdcc/code/trunk/sdcc/ChangeLog"
!endif
${SectionEnd}
${Section} -PostInstall SECPOSTINSTALL
; Add SDCC bin directory to path if silent mode
${If} ${Silent}
Call SDCC.AddBinToPath
${EndIf}
WriteRegStr ${SDCC_ROOT_KEY} "Software\${PRODUCT_NAME}" "" $INSTDIR
!ifdef VER_MAJOR & VER_MINOR & VER_REVISION & VER_BUILD
WriteRegDword ${SDCC_ROOT_KEY} "Software\${PRODUCT_NAME}" "VersionMajor" "${VER_MAJOR}"
WriteRegDword ${SDCC_ROOT_KEY} "Software\${PRODUCT_NAME}" "VersionMinor" "${VER_MINOR}"
WriteRegDword ${SDCC_ROOT_KEY} "Software\${PRODUCT_NAME}" "VersionRevision" "${VER_REVISION}"
WriteRegDword ${SDCC_ROOT_KEY} "Software\${PRODUCT_NAME}" "VersionBuild" "${VER_BUILD}"
!endif
WriteRegExpandStr ${UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninstall.exe"
WriteRegExpandStr ${UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "InstallLocation" "$INSTDIR"
WriteRegStr ${UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "${PRODUCT_NAME}"
WriteRegStr ${UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "sdcc.sourceforge.net"
WriteRegStr ${UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "http://sdcc.sourceforge.net/"
WriteRegStr ${UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "HelpLink" "http://sdcc.sourceforge.net/"
WriteRegStr ${UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLUpdateInfo" "http://sdcc.sourceforge.net/"
WriteUninstaller "$INSTDIR\uninstall.exe"
${SectionEnd}
;;;; Uninstaller code ;;;;
${Section} Uninstall SECUNINSTALL
!insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_STARTMENUPAGE_VARIABLE
${DebugMsg} "removing path $INSTDIR\bin"
Push "$INSTDIR\bin"
Call un.SDCC.RemoveFromPath
; Clean the registry
DeleteRegKey ${UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
DeleteRegKey ${SDCC_ROOT_KEY} "Software\${PRODUCT_NAME}"
Delete "$SMPROGRAMS\$MUI_STARTMENUPAGE_VARIABLE\GPL 2 License.lnk"
Delete "$SMPROGRAMS\$MUI_STARTMENUPAGE_VARIABLE\Change Log.lnk"
!ifdef FULL_DOC
Delete "$SMPROGRAMS\$MUI_STARTMENUPAGE_VARIABLE\Latest Changes.url"
Delete "$SMPROGRAMS\$MUI_STARTMENUPAGE_VARIABLE\README.lnk"
!endif
Delete "$SMPROGRAMS\$MUI_STARTMENUPAGE_VARIABLE\Documentation.lnk"
Delete "$SMPROGRAMS\$MUI_STARTMENUPAGE_VARIABLE\Uninstall SDCC.lnk"
Delete "$SMPROGRAMS\$MUI_STARTMENUPAGE_VARIABLE\SDCC on the Web.url"
RMDir "$SMPROGRAMS\$MUI_STARTMENUPAGE_VARIABLE"
Delete "$INSTDIR\lib\src\huge\Makefile"
Delete "$INSTDIR\lib\src\large\Makefile"
Delete "$INSTDIR\lib\src\medium\Makefile"
Delete "$INSTDIR\lib\src\small\Makefile"
Delete "$INSTDIR\lib\src\mcs51\*.asm"
Delete "$INSTDIR\lib\src\mcs51\Makefile"
Delete "$INSTDIR\lib\src\mcs51\README"
Delete "$INSTDIR\lib\src\hc08\*.c"
Delete "$INSTDIR\lib\src\hc08\hc08.lib"
Delete "$INSTDIR\lib\src\hc08\Makefile"
Delete "$INSTDIR\lib\src\s08\*.c"
Delete "$INSTDIR\lib\src\s08\s08.lib"
Delete "$INSTDIR\lib\src\s08\Makefile"
Delete "$INSTDIR\lib\src\stm8\stm8.lib"
Delete "$INSTDIR\lib\src\stm8\Makefile"
Delete "$INSTDIR\lib\src\stm8-large\stm8.lib"
Delete "$INSTDIR\lib\src\stm8-large\Makefile"
Delete "$INSTDIR\lib\src\z80\*.s"
Delete "$INSTDIR\lib\src\z80\z80.lib"
Delete "$INSTDIR\lib\src\z80\README"
Delete "$INSTDIR\lib\src\z80\Makefile"
Delete "$INSTDIR\lib\src\z180\*.s"
Delete "$INSTDIR\lib\src\z180\z80.lib"
Delete "$INSTDIR\lib\src\z180\README"
Delete "$INSTDIR\lib\src\z180\Makefile"
Delete "$INSTDIR\lib\src\sm83\*.s"
Delete "$INSTDIR\lib\src\sm83\sm83.lib"
Delete "$INSTDIR\lib\src\sm83\README"
Delete "$INSTDIR\lib\src\sm83\Makefile"
Delete "$INSTDIR\lib\src\r2k\*.s"
Delete "$INSTDIR\lib\src\r2ka\*.s"
Delete "$INSTDIR\lib\src\r3ka\*.s"
Delete "$INSTDIR\lib\src\ez80_z80\*.s"
Delete "$INSTDIR\lib\src\ez80_z80\ez80_z80.lib"
Delete "$INSTDIR\lib\src\ez80_z80\README"
Delete "$INSTDIR\lib\src\ez80_z80\Makefile"
Delete "$INSTDIR\lib\src\ds390\*.c"
Delete "$INSTDIR\lib\src\ds390\libds390.lib"
Delete "$INSTDIR\lib\src\ds390\Makefile.dep"
Delete "$INSTDIR\lib\src\ds390\Makefile"
Delete "$INSTDIR\lib\src\ds390\examples\MOVED"
Delete "$INSTDIR\lib\src\ds400\*.c"
Delete "$INSTDIR\lib\src\ds400\libds400.lib"
Delete "$INSTDIR\lib\src\ds400\Makefile.dep"
Delete "$INSTDIR\lib\src\ds400\Makefile"
Delete "$INSTDIR\lib\src\pdk13\pdk13.lib"
Delete "$INSTDIR\lib\src\pdk13\Makefile"
Delete "$INSTDIR\lib\src\pdk14\pdk14.lib"
Delete "$INSTDIR\lib\src\pdk14\Makefile"
Delete "$INSTDIR\lib\src\pdk15\pdk15.lib"
Delete "$INSTDIR\lib\src\pdk15\Makefile"
Delete "$INSTDIR\lib\src\pdk15-stack-auto\pdk15.lib"
Delete "$INSTDIR\lib\src\pdk15-stack-auto\Makefile"
Delete "$INSTDIR\lib\src\tlcs90\*.s"
Delete "$INSTDIR\lib\src\tlcs90\tlcs90.lib"
Delete "$INSTDIR\lib\src\tlcs90\README"
Delete "$INSTDIR\lib\src\tlcs90\Makefile"
Delete "$INSTDIR\lib\src\mos6502\*.s"
Delete "$INSTDIR\lib\src\mos6502\mos6502.lib"
Delete "$INSTDIR\lib\src\mos6502\Makefile"
Delete "$INSTDIR\lib\src\z80n\*.s"
Delete "$INSTDIR\lib\src\z80n\z80n.lib"
Delete "$INSTDIR\lib\src\z80n\README"
Delete "$INSTDIR\lib\src\z80n\Makefile"
Delete "$INSTDIR\lib\src\*.c"
Delete "$INSTDIR\lib\pic14\*.lib"
Delete "$INSTDIR\non-free\lib\pic14\*.lib"
Delete "$INSTDIR\lib\pic16\*.o"
Delete "$INSTDIR\lib\pic16\*.lib"
Delete "$INSTDIR\non-free\lib\pic16\*.lib"
Delete "$INSTDIR\lib\hc08\*.lib"
Delete "$INSTDIR\lib\s08\*.lib"
Delete "$INSTDIR\lib\stm8\*.lib"
Delete "$INSTDIR\lib\stm8-large\*.lib"
Delete "$INSTDIR\lib\z80\*.rel"
Delete "$INSTDIR\lib\z80\*.lib"
Delete "$INSTDIR\lib\z180\*.rel"
Delete "$INSTDIR\lib\z180\*.lib"
Delete "$INSTDIR\lib\r2k\*.rel"
Delete "$INSTDIR\lib\r2k\*.lib"
Delete "$INSTDIR\lib\r2ka\*.rel"
Delete "$INSTDIR\lib\r2ka\*.lib"
Delete "$INSTDIR\lib\r3ka\*.rel"
Delete "$INSTDIR\lib\r3ka\*.lib"
Delete "$INSTDIR\lib\ez80_z80\*.rel"
Delete "$INSTDIR\lib\ez80_z80\*.lib"
Delete "$INSTDIR\lib\small\*.lib"
Delete "$INSTDIR\lib\medium\*.lib"
Delete "$INSTDIR\lib\large\*.lib"
Delete "$INSTDIR\lib\huge\*.lib"
Delete "$INSTDIR\lib\small-stack-auto\*.lib"
Delete "$INSTDIR\lib\large-stack-auto\*.lib"
Delete "$INSTDIR\lib\sm83\*.rel"
Delete "$INSTDIR\lib\sm83\*.lib"
Delete "$INSTDIR\lib\ds390\*.lib"
Delete "$INSTDIR\lib\ds400\*.lib"
Delete "$INSTDIR\lib\pdk13\*.lib"
Delete "$INSTDIR\lib\pdk14\*.lib"
Delete "$INSTDIR\lib\pdk15\*.lib"
Delete "$INSTDIR\lib\pdk15-stack-auto\*.lib"
Delete "$INSTDIR\lib\tlcs90\*.rel"
Delete "$INSTDIR\lib\tlcs90\*.lib"
Delete "$INSTDIR\lib\mos6502\*.rel"
Delete "$INSTDIR\lib\mos6502\*.lib"
Delete "$INSTDIR\lib\z80n\*.rel"
Delete "$INSTDIR\lib\z80n\*.lib"
Delete "$INSTDIR\include\asm\z80\*.h"
Delete "$INSTDIR\include\asm\r2k\*.h"
Delete "$INSTDIR\include\asm\r3ka\*.h"
Delete "$INSTDIR\include\asm\pic16\*.h"
Delete "$INSTDIR\include\asm\pic14\*.h"
Delete "$INSTDIR\include\asm\mcs51\*.h"
Delete "$INSTDIR\include\asm\sm83\*.h"
Delete "$INSTDIR\include\asm\ds390\*.h"
Delete "$INSTDIR\include\asm\stm8\*.h"
Delete "$INSTDIR\include\asm\default\*.h"
Delete "$INSTDIR\include\z180\*.h"
Delete "$INSTDIR\include\pic14\*.h"
Delete "$INSTDIR\include\pic14\*.txt"
Delete "$INSTDIR\include\pic14\*.inc"
Delete "$INSTDIR\non-free\include\pic14\*.h"
Delete "$INSTDIR\include\pic16\*.h"
Delete "$INSTDIR\non-free\include\pic16\*.h"
Delete "$INSTDIR\include\pic16\*.txt"
Delete "$INSTDIR\include\mcs51\*.h"
Delete "$INSTDIR\include\hc08\*.h"
Delete "$INSTDIR\include\ds400\*.h"
Delete "$INSTDIR\include\ds390\*.h"
Delete "$INSTDIR\include\*.h"
!ifndef FULL_DOC
Delete "$INSTDIR\doc\README.TXT"
Delete "$INSTDIR\doc\ChangeLog_head.txt"
!endif
Delete "$INSTDIR\bin\sdasgb.exe"
Delete "$INSTDIR\bin\sdas6808.exe"
Delete "$INSTDIR\bin\sdasz80.exe"
Delete "$INSTDIR\bin\sdas8051.exe"
Delete "$INSTDIR\bin\sdas390.exe"
Delete "$INSTDIR\bin\sdasrab.exe"
Delete "$INSTDIR\bin\sdasstm8.exe"
Delete "$INSTDIR\bin\sdaspdk13.exe"
Delete "$INSTDIR\bin\sdaspdk14.exe"
Delete "$INSTDIR\bin\sdaspdk15.exe"
Delete "$INSTDIR\bin\sdastlcs90.exe"
Delete "$INSTDIR\bin\sdas6500.exe"
Delete "$INSTDIR\bin\sdld.exe"
Delete "$INSTDIR\bin\sdldgb.exe"
Delete "$INSTDIR\bin\sdld6808.exe"
Delete "$INSTDIR\bin\sdldz80.exe"
Delete "$INSTDIR\bin\sdldstm8.exe"
Delete "$INSTDIR\bin\sdldpdk.exe"
Delete "$INSTDIR\bin\sdar.exe"
Delete "$INSTDIR\bin\sdranlib.exe"
Delete "$INSTDIR\bin\sdnm.exe"
Delete "$INSTDIR\bin\sdobjcopy.exe"
Delete "$INSTDIR\bin\makebin.exe"
Delete "$INSTDIR\bin\packihx.exe"
Delete "$INSTDIR\bin\sdcc.exe"
Delete "$INSTDIR\bin\sdcpp.exe"
Delete "$INSTDIR\bin\as2gbmap.cmd"
Delete "$INSTDIR\bin\readline5.dll"
!ifdef WIN64
Delete "$INSTDIR\bin\libgcc_s_*-1.dll"
Delete "$INSTDIR\bin\libstdc++-6.dll"
Delete "$INSTDIR\bin\libwinpthread-1.dll"
!endif
Delete "$INSTDIR\bin\s51.exe"
Delete "$INSTDIR\bin\shc08.exe"
Delete "$INSTDIR\bin\sz80.exe"
Delete "$INSTDIR\bin\sstm8.exe"
Delete "$INSTDIR\bin\sdcdb.exe"
Delete "$INSTDIR\bin\sdcdb.el"
Delete "$INSTDIR\bin\sdcdbsrc.el"
Delete "$INSTDIR\COPYING.txt"
Delete "$INSTDIR\COPYING3.txt"
Delete "$INSTDIR\sdcc.ico"
Delete "$INSTDIR\uninstall.exe"
RMDir /r "$INSTDIR\lib\src\pic14"
RMDir /r "$INSTDIR\non-free\lib\src\pic14"
RMDir /r "$INSTDIR\lib\src\pic16"
RMDir /r "$INSTDIR\non-free\lib\src\pic16"
RMDir "$INSTDIR\lib\src\small"
RMDir "$INSTDIR\lib\src\medium"
RMDir "$INSTDIR\lib\src\large"
RMDir "$INSTDIR\lib\src\huge"
RMDir "$INSTDIR\lib\src\mcs51"
RMDir "$INSTDIR\lib\src\z80"
RMDir "$INSTDIR\lib\src\z180"
RMDir "$INSTDIR\lib\src\sm83"
RMDir "$INSTDIR\lib\src\r2k"
RMDir "$INSTDIR\lib\src\r2ka"
RMDir "$INSTDIR\lib\src\r3ka"
RMDir "$INSTDIR\lib\src\ez80_z80"
RMDir "$INSTDIR\lib\src\ds390\examples"
RMDir "$INSTDIR\lib\src\ds390"
RMDir "$INSTDIR\lib\src\ds400"
RMDir "$INSTDIR\lib\src\hc08"
RMDir "$INSTDIR\lib\src\s08"
RMDir "$INSTDIR\lib\src\stm8"
RMDir "$INSTDIR\lib\src\stm8-large"
RMDir "$INSTDIR\lib\src\pdk13"
RMDir "$INSTDIR\lib\src\pdk14"
RMDir "$INSTDIR\lib\src\pdk15"
RMDir "$INSTDIR\lib\src\pdk15-stack-auto"
RMDir "$INSTDIR\lib\src\tlcs90"
RMDir "$INSTDIR\lib\src\mos6502"
RMDir "$INSTDIR\lib\src\z80n"
RMDir "$INSTDIR\lib\src"
RMDir "$INSTDIR\non-free\lib\src"
RMDir "$INSTDIR\lib\pic14"
RMDir "$INSTDIR\non-free\lib\pic14"
RMDir "$INSTDIR\lib\pic16"
RMDir "$INSTDIR\non-free\lib\pic16"
RMDir "$INSTDIR\lib\z80"
RMDir "$INSTDIR\lib\z180"
RMDir "$INSTDIR\lib\r2k"
RMDir "$INSTDIR\lib\r2ka"
RMDir "$INSTDIR\lib\r3ka"
RMDir "$INSTDIR\lib\ez80_z80"
RMDir "$INSTDIR\lib\small"
RMDir "$INSTDIR\lib\medium"
RMDir "$INSTDIR\lib\large"
RMDir "$INSTDIR\lib\huge"
RMDir "$INSTDIR\lib\small-stack-auto"
RMDir "$INSTDIR\lib\large-stack-auto"
RMDir "$INSTDIR\lib\sm83"
RMDir "$INSTDIR\lib\ds390"
RMDir "$INSTDIR\lib\ds400"
RMDir "$INSTDIR\lib\hc08"
RMDir "$INSTDIR\lib\s08"
RMDir "$INSTDIR\lib\stm8"
RMDir "$INSTDIR\lib\stm8-large"
RMDir "$INSTDIR\lib\pdk13"
RMDir "$INSTDIR\lib\pdk14"
RMDir "$INSTDIR\lib\pdk15"
RMDir "$INSTDIR\lib\pdk15-stack-auto"
RMDir "$INSTDIR\lib\tlcs90"
RMDir "$INSTDIR\lib\mos6502"
RMDir "$INSTDIR\lib\z80n"
RMDir "$INSTDIR\lib"
RMDir "$INSTDIR\non-free\lib"
RMDir "$INSTDIR\include\asm\z80"
RMDir "$INSTDIR\include\asm\r2k"
RMDir "$INSTDIR\include\asm\r3ka"
RMDir "$INSTDIR\include\asm\pic16"
RMDir "$INSTDIR\non-free\include\asm\pic16"
RMDir "$INSTDIR\include\asm\pic14"
RMDir "$INSTDIR\non-free\include\asm\pic14"
RMDir "$INSTDIR\include\asm\mcs51"
RMDir "$INSTDIR\include\asm\sm83"
RMDir "$INSTDIR\include\asm\ds390"
RMDir "$INSTDIR\include\asm\stm8"
RMDir "$INSTDIR\include\asm\default"
RMDir "$INSTDIR\include\asm"
RMDir "$INSTDIR\include\z180"
RMDir "$INSTDIR\include\pic14"
RMDir "$INSTDIR\non-free\include\pic14"
RMDir "$INSTDIR\include\pic16"
RMDir "$INSTDIR\non-free\include\pic16"
RMDir "$INSTDIR\include\mcs51"
RMDir "$INSTDIR\include\hc08"
RMDir "$INSTDIR\include\ds400"
RMDir "$INSTDIR\include\ds390"
RMDir "$INSTDIR\include"
RMDir "$INSTDIR\non-free\include"
RMDir "$INSTDIR\non-free"
!ifdef FULL_DOC
RMDir /r "$INSTDIR\doc"
!else
RMDir "$INSTDIR\doc"
!endif
RMDir "$INSTDIR\bin"
RMDir "$INSTDIR"
;;;; SetAutoClose true
${SectionEnd}
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Path Manipulation functions ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
!verbose 3
!include "WinMessages.nsh"
!verbose 4
; AddToPath - Adds the given dir to the search path.
; Input - head of the stack
; Note - Win9x systems requires reboot
${Function} SDCC.AddToPath
Exch $0
Push $1
Push $2
Push $3
; don't add if the path doesn't exist
${If} ${FileExists} $0
${If} ${IsNT}
; On NT: read PATH from registry
ReadRegStr $1 HKCU "Environment" "PATH"
${Else}
; Not on NT: read PATH from environment variable
ReadEnvStr $1 PATH
${EndIf}
${StrStr} $2 "$1;" "$0;"
${If} $2 == ""
${StrStr} $2 "$1;" "$0\;"
${If} $2 == ""
GetFullPathName /SHORT $3 $0
${StrStr} $2 "$1;" "$3;"
${If} $2 == ""
${StrStr} $2 "$1;" "$03\;"
${If} $2 == ""
${If} ${IsNT}
;System PATH variable is at:
;HKLM "/SYSTEM/CurrentControlSet/Control/Session Manager/Environment" "Path"
ReadRegStr $1 HKCU "Environment" "PATH"
StrCpy $2 $1 1 -1 ; copy last char
${If} $2 == ";" ; if last char == ;
StrCpy $1 $1 -1 ; remove last char
${Endif}
${If} $1 != ""
StrCpy $0 "$1;$0"
${Endif}
WriteRegExpandStr HKCU "Environment" "PATH" $0
SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000
${Else}
; Not on NT
StrCpy $1 $WINDIR 2
FileOpen $1 "$1\autoexec.bat" a
FileSeek $1 -1 END
FileReadByte $1 $2
${If} $2 = 26 ; DOS EOF
FileSeek $1 -1 END ; write over EOF
${Endif}
${DebugMsg} "adding line $\r$\nSET PATH=%PATH%;$3$\r$\n"
FileWrite $1 "$\r$\nSET PATH=%PATH%;$3$\r$\n"
FileClose $1
${DebugMsg} "SetRebootFlag true"
SetRebootFlag true
${Endif}
${Endif}
${Endif}
${Endif}
${Endif}
${EndIf}
Pop $3
Pop $2
Pop $1
Pop $0
${FunctionEnd}
; RemoveFromPath - Remove a given dir from the path
; Input: head of the stack
!macro SDCC.RemoveFromPath un
${Function} ${un}SDCC.RemoveFromPath
Exch $0
Push $1
Push $2
Push $3
Push $4
Push $5
Push $6
IntFmt $6 "%c" 26 ; DOS EOF
${If} ${IsNT}
;System PATH variable is at:
;HKLM "/SYSTEM/CurrentControlSet/Control/Session Manager/Environment" "Path"
ReadRegStr $1 HKCU "Environment" "PATH"
StrCpy $5 $1 1 -1 ; copy last char
${If} $5 != ";" ; if last char != ;
StrCpy $1 "$1;" ; append ;
${EndIf}
Push $1
Push "$0;"
Call ${un}StrStr ; Find `$0;` in $1
Pop $2 ; pos of our dir
${If} $2 != ""
; it is in path:
; $0 - path to add
; $1 - path var
StrLen $3 "$0;"
StrLen $4 $2
StrCpy $5 $1 -$4 ; $5 is now the part before the path to remove
StrCpy $6 $2 "" $3 ; $6 is now the part after the path to remove
StrCpy $3 $5$6
StrCpy $5 $3 1 -1 ; copy last char
${If} $5 == ";" ; if last char == ;
StrCpy $3 $3 -1 ; remove last char
${EndIf}
${If} $3 != ""
; New PATH not empty: update the registry
WriteRegExpandStr HKCU "Environment" "PATH" $3
${Else}
; New PATH empty: remove from the registry
DeleteRegValue HKCU "Environment" "PATH"
${EndIf}
SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000
${Endif}
${Else}
; Not on NT
StrCpy $1 $WINDIR 2
FileOpen $1 "$1\autoexec.bat" r
GetTempFileName $4
FileOpen $2 $4 w
GetFullPathName /SHORT $0 $0
StrCpy $0 "SET PATH=%PATH%;$0"
nextLine:
; copy all lines except the line containing "SET PATH=%PATH%;$0"
; from autoexec.bat to the temporary file
ClearErrors
FileRead $1 $3
${IfNot} ${Errors}
StrCpy $5 $3 1 -1 ; read last char
${If} $5 == $6 ; if DOS EOF
StrCpy $3 $3 -1 ; remove DOS EOF so we can compare
${EndIf}
${If} $3 != "$0$\r$\n"
${AndIf} $3 != "$0$\n"
${AndIf} $3 != "$0"
FileWrite $2 $3
Goto nextLine
${Else}
; This is the line I'm looking for:
; don't copy it
${DebugMsg} "removing line $0"
${DebugMsg} "SetRebootFlag true"
SetRebootFlag true
Goto nextLine
${EndIf}
${EndIf}
FileClose $2
FileClose $1
StrCpy $1 $WINDIR 2
Delete "$1\autoexec.bat"
CopyFiles /SILENT $4 "$1\autoexec.bat"
Delete $4
${Endif}
Pop $6
Pop $5
Pop $4
Pop $3
Pop $2
Pop $1
Pop $0
${FunctionEnd}
!macroend
!insertmacro SDCC.RemoveFromPath ""
!insertmacro SDCC.RemoveFromPath "un."
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Uninstall/Reinstall page functions ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
!ifdef VER_MAJOR & VER_MINOR & VER_REVISION & VER_BUILD
Var ReinstallPageCheck
${Function} SDCC.PageReinstall
ReadRegStr $R0 ${SDCC_ROOT_KEY} "Software\${PRODUCT_NAME}" ""
${If} $R0 == ""
ReadRegStr $R0 ${UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString"
${If} $R0 == ""
Abort
${EndIf}
${EndIf}
ReadRegDWORD $R0 ${SDCC_ROOT_KEY} "Software\${PRODUCT_NAME}" "VersionMajor"
ReadRegDWORD $R1 ${SDCC_ROOT_KEY} "Software\${PRODUCT_NAME}" "VersionMinor"
ReadRegDWORD $R2 ${SDCC_ROOT_KEY} "Software\${PRODUCT_NAME}" "VersionRevision"
ReadRegDWORD $R3 ${SDCC_ROOT_KEY} "Software\${PRODUCT_NAME}" "VersionBuild"
StrCpy $R0 $R0.$R1.$R2.$R3
${VersionCompare} ${VER_MAJOR}.${VER_MINOR}.${VER_REVISION}.${VER_BUILD} $R0 $R0
${If} $R0 == 0
StrCpy $R1 "${PRODUCT_NAME} ${PRODUCT_VERSION} is already installed. Select the operation you want to perform and click Next to continue."
StrCpy $R2 "Add/Reinstall components"
StrCpy $R3 "Uninstall ${PRODUCT_NAME}"
!insertmacro MUI_HEADER_TEXT "Already Installed" "Choose the maintenance option to perform."
StrCpy $R0 "2"
${ElseIf} $R0 == 1
StrCpy $R1 "An older version of ${PRODUCT_NAME} is installed on your system. It's recommended that you uninstall the current version before installing. Select the operation you want to perform and click Next to continue."
StrCpy $R2 "Uninstall before installing"
StrCpy $R3 "Do not uninstall"
!insertmacro MUI_HEADER_TEXT "Already Installed" "Choose how you want to install ${PRODUCT_NAME}."
StrCpy $R0 "1"
${ElseIf} $R0 == 2
StrCpy $R1 "A newer version of ${PRODUCT_NAME} is already installed! It is not recommended that you install an older version. If you really want to install this older version, it's better to uninstall the current version first. Select the operation you want to perform and click Next to continue."
StrCpy $R2 "Uninstall before installing"
StrCpy $R3 "Do not uninstall"
!insertmacro MUI_HEADER_TEXT "Already Installed" "Choose how you want to install ${PRODUCT_NAME}."
StrCpy $R0 "1"
${Else}
Abort
${EndIf}
nsDialogs::Create /NOUNLOAD 1018
${NSD_CreateLabel} 0 0 100% 24u $R1
Pop $R1
${NSD_CreateRadioButton} 30u 50u -30u 8u $R2
Pop $R2
${NSD_OnClick} $R2 SDCC.PageReinstallUpdateSelection
${NSD_CreateRadioButton} 30u 70u -30u 8u $R3
Pop $R3
${NSD_OnClick} $R3 SDCC.PageReinstallUpdateSelection
${If} $ReinstallPageCheck != 2
SendMessage $R2 ${BM_SETCHECK} ${BST_CHECKED} 0
${Else}
SendMessage $R3 ${BM_SETCHECK} ${BST_CHECKED} 0
${EndIf}
nsDialogs::Show
${FunctionEnd}
${Function} SDCC.PageReinstallUpdateSelection
Pop $R1
${NSD_GetState} $R2 $R1
${If} $R1 == ${BST_CHECKED}
StrCpy $ReinstallPageCheck 1
${Else}
StrCpy $ReinstallPageCheck 2
${EndIf}
${FunctionEnd}
${Function} SDCC.PageLeaveReinstall
${NSD_GetState} $R2 $R1
${DebugMsg} "R0 = $R0, R1 = $R1, R2 = $R2"
${If} $R0 == "1"
${AndIf} $R1 != "1"
Goto reinst_done
${EndIf}
${If} $R0 == "2"
${AndIf} $R1 == 1
Goto reinst_done
${EndIf}
ReadRegStr $R1 ${UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString"
;Run uninstaller
HideWindow
${If} $R0 == "2"
; Uninstall only: uninstaller should be removed
ClearErrors
; ExecWait doesn't wait if _?=$INSTDIR is not defined!
ExecWait '$R1'
Quit
${Else}
; Uninstal & Reinstall: uninstaller will be rewritten
ClearErrors
; ExecWait doesn't wait if _?=$INSTDIR is not defined!
ExecWait '$R1 _?=$INSTDIR'
${EndIf}
BringToFront
reinst_done:
${FunctionEnd}
!endif # VER_MAJOR & VER_MINOR & VER_REVISION & VER_BUILD
|