summaryrefslogtreecommitdiff
path: root/dev-embedded/sdcc
diff options
context:
space:
mode:
Diffstat (limited to 'dev-embedded/sdcc')
-rw-r--r--dev-embedded/sdcc/Manifest28
-rw-r--r--dev-embedded/sdcc/files/sdcc-2.8.0-flags.patch74
-rw-r--r--dev-embedded/sdcc/files/sdcc-2.8.0-gcc44.patch9
-rw-r--r--dev-embedded/sdcc/files/sdcc-2.9.0-build.patch51
-rw-r--r--dev-embedded/sdcc/files/sdcc-2.9.0-gcc44.patch15
-rw-r--r--dev-embedded/sdcc/files/sdcc-2.9.0-getline.patch16
-rw-r--r--dev-embedded/sdcc/files/sdcc-2.9.0-headers.patch209
-rw-r--r--dev-embedded/sdcc/metadata.xml38
-rw-r--r--dev-embedded/sdcc/sdcc-2.5.0_p20060502.ebuild50
-rw-r--r--dev-embedded/sdcc/sdcc-2.6.0.ebuild46
-rw-r--r--dev-embedded/sdcc/sdcc-2.7.0.ebuild46
-rw-r--r--dev-embedded/sdcc/sdcc-2.8.0.ebuild74
-rw-r--r--dev-embedded/sdcc/sdcc-2.9.0.ebuild96
-rw-r--r--dev-embedded/sdcc/sdcc-3.5.0.ebuild120
-rw-r--r--dev-embedded/sdcc/sdcc-9999.ebuild120
15 files changed, 992 insertions, 0 deletions
diff --git a/dev-embedded/sdcc/Manifest b/dev-embedded/sdcc/Manifest
new file mode 100644
index 000000000000..21889f19803b
--- /dev/null
+++ b/dev-embedded/sdcc/Manifest
@@ -0,0 +1,28 @@
+AUX sdcc-2.8.0-flags.patch 2103 SHA256 bc578efacde9ebf65f49c2d209854a7ada18f337da894ed37414fde0dd1bc046 SHA512 a3a0a3768ac98cfcce3e660263a1f076cd50a557bf16b9f80fb20450875b7da16567f96b208acd77b73d669ac8a6a096d1e150f0bc0c7935b58642b30e7b74fe WHIRLPOOL 4e7c9d06c2681e707f3b2dc4d51a91ae18b3130774580b78bfb5b04004582f2cdfa9eae701d4ba56a16aa88e6bac6a60b0dfd3a386d5b22488f3a1583c123167
+AUX sdcc-2.8.0-gcc44.patch 313 SHA256 ae0a477edc8f9aa0f6bb6b08fcde4538fd465708c0d79dc5bdc96969feacc115 SHA512 6b1bbcd93153c099cc562f69fe8cff872b325af84bbcd0f96b2db834a2e4ff4ab1f33393b77e40c6a20744cf4d1aa89a4a536d52347cabc6ce4b5f93bdb366e5 WHIRLPOOL 5eac5c590315f150dc160a25a71c88eb4add7411622ca7b4d8ae83fc5b4ddf34b7ea936c07c4a1d309e1c280ed7a1d1a17a537eac61e04f6d46f08e791fa05bb
+AUX sdcc-2.9.0-build.patch 2443 SHA256 11ea67c70cc4cca2d487ad3ffc140023ff3d7d67fe7ba04f5529515e6baf2b1b SHA512 8666e05a5992c586c1af71dfd4f6234a231641fb01c09ac3dce2c83d1c88a1228ebb7b2543fe8b47fbb6aead86d9f62c80f5031e6f6080ca70ae5779681ff1e8 WHIRLPOOL 63f9585740c13944ddffd58de69253fd48b7b784c9e0bfac62579efe6109d33de5d2f708b034f14127688a24aa57526c8438c03c1694349b789c0a56bcaf2ce3
+AUX sdcc-2.9.0-gcc44.patch 419 SHA256 ffc643045f09d0b191172faf79dcdf58c3f6d8cf8361b0d75b65fafa7b29f3a8 SHA512 161cf235fb17c73ffe1d8c8d54853f2743025a77a554d4623907e8199b3858f4fbae3a6f2657f88edf490e2655e908cc22c6d217de4f1c5f42d0743e310706c1 WHIRLPOOL 1cb1d76e86626cc09a67e9eb3821b34768f728fe6fd1239984ab709fcc22a5491a501dfb7ab0fd7e6ae9e5e1422659b7788d500a1df96200e0ccd6ca63a80799
+AUX sdcc-2.9.0-getline.patch 308 SHA256 c51c06e536bb761f301a816916f467b29b4e144b9380dbc1163799ea6e24a95a SHA512 49c064d1d6253c248538ed199d2ad10e30fe3bc1df0d707f37f9c5780b55a3c418fa9d2e74e87cb60b2fafba6f074736e817d249846d2ebe927601edaeae5bfd WHIRLPOOL e9f4f908add7fc1b01664f798d2252c571f10f82b8043fa4fc5819c7c471ee9ea88837359a2cd7edd126b071b9ac448f2e5a93690819f75f90b6a98b42749ec9
+AUX sdcc-2.9.0-headers.patch 7919 SHA256 8c5e0162f52eaaad91e4dee2c5197dfa7ec075dca953bdf00b5623a15ca867f8 SHA512 93fa9c2fd1a6ac2a3c0f941535a3d545f25d6e315e720481cc30d3c7d1fd4d3043448413b541d6ebc6f87d49d331779fca807c23eee863c23c037e5379d3b36b WHIRLPOOL 300c5fe340e2a2f634a7a49197174e028313db0bce48387c9d3119666be994dc5493e575770a1d37a6efd9b237d46c174e9aa7daabef3f4cbb9e48318016c4e4
+DIST sdcc-doc-2.6.0.tar.gz 1026186 SHA256 fca8592706f76ed7063652dafa8c18c79070a1b31c12b8834b7feffbcb945817 SHA512 3cffb2ac4bbe65539951b134f89449341bff9f5682ec344c244b28efea5fe96c753caa873f26c75b8fc0a19f48404ae0a43f05e41eabafe66fd0f493b4065f97 WHIRLPOOL a047bc6c74f7968e63ad5ee540ae52e5e4b0007ea253a84f1b69b7f2ed13b247227aa5d9d366753fce0d58a6c3689b8d99fd7c636070c5bbe942f0c8be01ff84
+DIST sdcc-doc-2.7.0.tar.bz2 1211113 SHA256 3a70654c9c0a0f86d9632d85f94eed946c9faf946c266fceadc5f60f590c0b70 SHA512 2ed6503551b7c9e3e674a3bf391e731c2fa838f3978761982ab1a072d47b449b73e6efe3b05967bcdfe623c2fc933503702912721b90df95dab9b332dfacad9a WHIRLPOOL 28282a9c973f5d155c57c1ea9499ce673118e23e2c877a264ceaa2a022bb0442d04d0d3cb6e94109bdfe3a47cc618c43a05f9fee1fb424438b0776793b73343d
+DIST sdcc-doc-2.8.0.tar.bz2 1363271 SHA256 b40fd15e69d89872c2982fe8a9ed2cc0415d05d0e830b4969714e0af8db21f6d SHA512 201fcb0ffb96649507dcb0489789e7a89cb30705e9eae3f40b6ce907df3464439488d1369f7d5557873e28bcd44a2af82bb3dab2f02adbf0d6ea88a711bb5d9b WHIRLPOOL cd1bd3f46b931e59423100a88fa1827b35c0c1d746be28c1b17d0d4d57f1af57de215c7f0c4dfa9e7d1d072c1a63ba5ab53a2157a925b0450ef9610d01f732aa
+DIST sdcc-doc-2.9.0.tar.bz2 1388379 SHA256 b3a210dfeb46b924cf36531a6e5a11b9d7334765a61e46688ad3f7016802d057 SHA512 c0214437dada2d2acc3590d8a82b077cd841a93da7fe76cc259adea0da67e6ea0ced14dc80c5ce05261aa5d7e2f345f8cf994dafa4e38bd404b00fd6b5b2d168 WHIRLPOOL dc6957192735f5cca92c7c25c0431c93da3b52c5084a7affd62f43a30a8b0dacb522ce5ee99e823fd4a9f3ffad1d3d93e52f37a906de6cbbd8a030899a009b62
+DIST sdcc-doc-20060502.tar.gz 1027650 SHA256 b2663f2a9a195d94990fe6a958b7f1b1b96f5f11e12a7b738613ca762f927407 SHA512 aba51493c76a019fb439fa8ff2f645bc519bdb9ded30a2871d51f2dd6eedc7315f826e28d5efed0eae731060c22b82071025cec5ae4407c5f6acdd2c18292ff2 WHIRLPOOL e1bff5315e4a6f7902beeca6db641594bbf478d0d9f74e658b3569596d912941c8e62522122b4f34a6fa8b83d4a8402adfad61cce1602bff5c35c16cdd19d124
+DIST sdcc-doc-3.5.0.tar.bz2 1000775 SHA256 97c46765d42c710351a131c03cf32be2dd3841ce2941ea0c7f01fc960c8f3df3 SHA512 43de0c19ad538b4495218b04e5ab6a886fd9945c8a82c400e9a53314547f5d6ab0529989274faecc2d954f35f8fe60f338f09f93536b62a305203d2119df597e WHIRLPOOL 68e34cb5f84b66d2582e393bdd53382164b82ce0fb610ddbe17298c7b81dd0c0b45d1be06684a9aef4debbf036bf344b49a2d991e8a36e43f7e37ec57b5586e8
+DIST sdcc-src-2.6.0.tar.gz 4229518 SHA256 6534450fef981502d5e540464fe0d4332e0f47704548354b59af90eaf290cf93 SHA512 d5802ad7804c771c25b72b5038cdc291d3e67a618fde6a9d03235954a6a133e0ecc42f26eabcc933806e54457e44efea81dc79ac03cb547556da41dec3eff1e6 WHIRLPOOL db33972831052720d75544976bdd2e9eb4c6eeef692c428ee5d82acc016bdf8a6d1d45bc27b9056ca6da604adfd5d79fdaca0769076099d36f048eff86ce52cc
+DIST sdcc-src-2.7.0.tar.bz2 3405687 SHA256 315caf8b239dfe4f922f090f33d24e822eb49a1b443d4be020056c91277ffd95 SHA512 95625aadf386f0da65f4ddb856fd7da8a333ed884e308993a0897a205561438b60d2836a60e33a849f6b6ab5dd938b822072641866596897f48fa62a4c536dd3 WHIRLPOOL f2dea2053d0ed37d6326982bd87b157344caeadfdf92774f927bffb87dff0cf126aeb108ddd5c14b31275313affabf523f6de2762559d5121f3d8c89b809ddd2
+DIST sdcc-src-2.8.0.tar.bz2 3460693 SHA256 cbb035699d8910c7ca2fa360a773504b44165e98042ed8c208fea2fe47a96557 SHA512 91f43ea275f4c27e5c475a9dbfe5e9c7d5804a530151420473cbc65a48ca15c65a6e38628e0bf927d89cd8ddb6b6030d5d65aa9cba7963e23ac18bde42951fd5 WHIRLPOOL b5fc8de30117b0b35df40c7bd9ac6392fcb6fec20ffae5444b3c4005120c5d4607df2c73a8470600f21820ced3f83ce856167c757e5f9d3c6ea4b91abb86caf7
+DIST sdcc-src-2.9.0.tar.bz2 3764926 SHA256 5f48246ea233bcfa63fafc23898584388b207caa80c5cc21485f089c87eaf68b SHA512 0703f46db590fa3248c104d5045b0807fc18898aec13a8f5f762ff4e573f3fc199590050fd82c665ae71cd586081fe88db671dcc498770d736650be0dcf32b0e WHIRLPOOL fd0c46406c1ef1abe423020f8e9dd97848757ef843210198de52bf85f83ca4e36a7f43a2e6204b584e046399af354a3cb88f5b97cf8c278b32a0f8aaee632808
+DIST sdcc-src-20060502.tar.gz 4145716 SHA256 4433dbafdf9dcc3b3528c9dbbcc1eb4c572c1ff2179286010c56fe529f90799e SHA512 0817f14871822874a3e4b5d8be68df56c7f19444c283d4cd4aa8436af6984631dd0f8322080380d227bbc8d931e6cbc84a81cfbced20cd56f2765cdaf1d552cd WHIRLPOOL a44101b2f34f44c0fe1c2e0f81e4019f354f57460b2394ff560c7b4416d429efa51660d6b574813ef3d012e42a97689154f9470f607ce488ce0c443492c8d903
+DIST sdcc-src-3.5.0.tar.bz2 10504517 SHA256 f82978d1614244b22e093402c0a4de1f688a07c807b2980126c964eb3df85fa9 SHA512 a5842945da065ab566b7e073782e92f851da48c160990d49b76ab4773fe1c14286cab399fb7f2456432e4043ee7ce07c3b149aeb103c51f85a33fdc5f8798f4e WHIRLPOOL 8d3ca19e93d89efaa6577a8901cf5099c868158b16d25ecbeaeff67e890a110426cd6876c3f11b6d20153b27e69a118e9e7aad52b4acb178cf0c5e8d669e892a
+EBUILD sdcc-2.5.0_p20060502.ebuild 1563 SHA256 5465449d3b3e9c08d52620388f392fbf51498f7e57f544e48deea64e1f78858c SHA512 18160dd38822073c6719d8d20b6eafba7701a7edcec8a7377c9acec8ae8b212b9ea4dcd43ce1b358353126d6831d985ea9c33ae09e6618d51a60b0fcb93c8e5e WHIRLPOOL 270e87dd6aea3d3e69f3a51781b018881547c593292f32d4e5b41c8fcea508bd90ed1eab371936ac2dae2575d7a7a790038d52e3fccd6da7753faa9e81d57a18
+EBUILD sdcc-2.6.0.ebuild 1465 SHA256 13611b58bffe0f893bd46bb168e527024e5403fbb137ea6b639d56b75fb0c42b SHA512 9e73341dd67cf0eede1f3acf5e76243edd4d90dc8ab1a9ffa4235401cb41b87cdd59c4c60eee90c3131e67a3ef5ae5bfc81f80488e6f0e4e66daaf41e8b0ef1c WHIRLPOOL 913f1c1e6a850e49901d7db1c9c4193f01c802794253a221b835d191f2a2e24dc0635866add03f4b40f86d0e0cf74fef11e548d4c95c6d8073628990cc725e61
+EBUILD sdcc-2.7.0.ebuild 1467 SHA256 4df9ee411d8d5f1172e923d8156b534909497e86f0dd59a61cd89b222bf6f930 SHA512 8ab29dfdc92659ed01b6d5af04fa2927a35431cc7e8d9da7537dd40ca76a9d89436983daffd9f2dbf5c62fee7a8de200fe8d12e7a47f5d8c22a029a25ca6a4de WHIRLPOOL 36108a5c9f9879fba96976e634b33137c8e2b03b0ecf34e6975d75c4b4b0c067d87ccb9e58659581fa2b2c750442661d846d9633b88ca7a2243960766bafc606
+EBUILD sdcc-2.8.0.ebuild 1977 SHA256 dac583370cb62e9b3bd5c6cfa4ccebce22eaa04c8cbb9fb2aef68ec3b7677d25 SHA512 2128c11830f2bf44d8253e7789dc878a5d8a460ebc9fa183546341e2c4a981d53ffc7347291e24a904e5a0d1496a8121c754044a19496ee96491e5d928807770 WHIRLPOOL 165adbad7d5f89a6bffca86524921ef0c21bb47ae1cae4b2208a994f50c8430006b7db9623d7c03ff137b28f208cc742fc93e55018c8c07de1add105d6c924ce
+EBUILD sdcc-2.9.0.ebuild 2276 SHA256 a3e1034396264c5c96bceaef61e5ebfb4a14621ec1fcd45ce4128967225143b2 SHA512 3ff736235eb8a598c75b2a8f2f879cab5de688f93b31f268892c73783bbeae5c3401cf46849da5fad2e58164c840a31c79cf6eccd9b19637c04c0f304b396241 WHIRLPOOL 7a0757236c5e18685c7c63f17d8f29282fbb40d8fc9d1ecfc3cfc968be9abd401e4021345d2681c2b995edede834456f498f2133dfad92171dfcb157d031f981
+EBUILD sdcc-3.5.0.ebuild 3270 SHA256 95980805e40bbc05641f3867543bf8e7d0b5f5d8b2ddda6f87adda6fcf86d905 SHA512 d5531e3c609ebae96ed558de4afe6292179b4c2fa30034203667ece95e7673f04d4d8ea303e521f96b888943bf085ba9ac125a9520a31f2c649f232fb9d3349c WHIRLPOOL da6f5a984c04548a0d179e09070e122c2ea0f2179b2d20a8cc86c8e82746c49739564e1bf8dfb19dbd83afd4c720a9476ef705d2a318218006820e992cb25e35
+EBUILD sdcc-9999.ebuild 3270 SHA256 95980805e40bbc05641f3867543bf8e7d0b5f5d8b2ddda6f87adda6fcf86d905 SHA512 d5531e3c609ebae96ed558de4afe6292179b4c2fa30034203667ece95e7673f04d4d8ea303e521f96b888943bf085ba9ac125a9520a31f2c649f232fb9d3349c WHIRLPOOL da6f5a984c04548a0d179e09070e122c2ea0f2179b2d20a8cc86c8e82746c49739564e1bf8dfb19dbd83afd4c720a9476ef705d2a318218006820e992cb25e35
+MISC ChangeLog 3448 SHA256 4ea14b33b9c1b11c5704b0f356f77cfa4604ca7d22c1bbe6a84084db0f2df06f SHA512 1f70517971cd3b727bad9380f18519e3422654930686b98dc7ccf6d7043ebfba01012d727e287404a615680e34973f52f6b85fb7acba0b512f11664b21c8f0fe WHIRLPOOL 736097fab19ac4ac9f3222394b552cb4c268d7be161e7f02d671b588ddeb9bc717d883ca4da25d86276695fa3ba906f70e911eab68bf408c82eff89c54d27273
+MISC ChangeLog-2015 9773 SHA256 1d8d2ed22837a019f005c85711144867c8c628434683431a7bd91e546ddc8588 SHA512 bd11aef91c2c664ebf11b46dd83141086bbfa087dbe252dc4668801ecc7a67bc3c9ae4e0113e6a0b99a0ac0ffd6b7fec097a86c8203e5c6110f25cabc5416de2 WHIRLPOOL 9647c0ae701f0c57ed12bc12ced7e6344c48fe64d6c7f5ef46c99378148f728f728814c0b7420b082d89c8eecdf0e330fbfca4cef2b844de7737fe8c417ca674
+MISC metadata.xml 2212 SHA256 118d2b8abd35212858bb33d5edab63c3bb6089d9973bef6ea5f91c8e2189f883 SHA512 4af2667ae3006548904e9e13894a49c277744d6876e0a99c99e8ea2e89c9e3fc277cf851ae0856b3c3b64f41ef7fd7c255f1bb4f9f42de8917aad7c59e25a0f0 WHIRLPOOL 820abadc5f42bbcfca65275575e86e5b5aa8bbab92abf098f1d13d14bf1a7a638aecdd3447db32398b117ec2a4703ca97449d32c835e05554ad5ba9d0e60c87a
diff --git a/dev-embedded/sdcc/files/sdcc-2.8.0-flags.patch b/dev-embedded/sdcc/files/sdcc-2.8.0-flags.patch
new file mode 100644
index 000000000000..cd920e988d9b
--- /dev/null
+++ b/dev-embedded/sdcc/files/sdcc-2.8.0-flags.patch
@@ -0,0 +1,74 @@
+diff -Nadur sdcc-orig/configure.in sdcc/configure.in
+--- sdcc-orig/configure.in 2008-04-20 15:24:14.000000000 +0200
++++ sdcc/configure.in 2008-04-20 15:27:18.000000000 +0200
+@@ -320,17 +320,6 @@
+ M_OR_MM=$sdcc_cv_MM
+ AC_SUBST(M_OR_MM)
+
+-# This is the first time when CFLAGS are set/modified!!
+-adl_DD_COPT(CC, ggdb)
+-if test "$sdcc_cv_CCggdb" = "yes"; then
+- CFLAGS="-ggdb ${CFLAGS}"
+-fi
+-
+-adl_DD_COPT(CC, pipe)
+-if test "$sdcc_cv_CCpipe" = "yes"; then
+- CFLAGS="-pipe $CFLAGS"
+-fi
+-
+
+ # Checks for typedefs, structures, and compiler characteristics.
+ # ===========================================================================
+diff -Nadur sdcc-orig/debugger/mcs51/configure.in sdcc/debugger/mcs51/configure.in
+--- sdcc-orig/debugger/mcs51/configure.in 2008-04-20 15:24:19.000000000 +0200
++++ sdcc/debugger/mcs51/configure.in 2008-04-20 15:26:53.000000000 +0200
+@@ -148,17 +148,6 @@
+ M_OR_MM=$sdcc_cv_MM
+ AC_SUBST(M_OR_MM)
+
+-# This is the first time when CFLAGS are set/modified!!
+-adl_DD_COPT(CC, ggdb)
+-if test "$sdcc_cv_CCggdb" = "yes"; then
+- CFLAGS="-ggdb ${CFLAGS}"
+-fi
+-
+-adl_DD_COPT(CC, pipe)
+-if test "$sdcc_cv_CCpipe" = "yes"; then
+- CFLAGS="-pipe $CFLAGS"
+-fi
+-
+
+ # Set standard installation paths
+ # ===========================================================================
+diff -Nadur sdcc-orig/sim/ucsim/configure.in sdcc/sim/ucsim/configure.in
+--- sdcc-orig/sim/ucsim/configure.in 2008-04-20 15:24:11.000000000 +0200
++++ sdcc/sim/ucsim/configure.in 2008-04-20 15:26:06.000000000 +0200
+@@ -514,28 +514,6 @@
+ M_OR_MM=$ucsim_cv_MM
+ AC_SUBST(M_OR_MM)
+
+-# This is the first time when CFLAGS are set/modified!!
+-
+-DD_COPT(CXX, ggdb)
+-DD_COPT(CXX, gstabs)
+-if test "$ucsim_cv_CXXgstabs" = "yes"; then
+- gopt="-gstabs+ -g3"
+-elif test "$ucsim_cv_CXXggdb" = "yes"; then
+- gopt="-ggdb -g3"
+-else
+- gopt="-g"
+-fi
+-if test "$CXXFLAGS"x = x ;then
+- CXXFLAGS="$gopt"
+-else
+- CXXFLAGS="$CXXFLAGS $gopt"
+-fi
+-
+-DD_COPT(CXX, pipe)
+-if test "$ucsim_cv_CXXpipe" = "yes"; then
+- CXXFLAGS="$CXXFLAGS -pipe"
+-fi
+-
+ PICOPT=""
+ SHAREDLIB="no"
+ DD_COPT_NO_IGNORE(CXX, fPIC)
diff --git a/dev-embedded/sdcc/files/sdcc-2.8.0-gcc44.patch b/dev-embedded/sdcc/files/sdcc-2.8.0-gcc44.patch
new file mode 100644
index 000000000000..8d0ddf045195
--- /dev/null
+++ b/dev-embedded/sdcc/files/sdcc-2.8.0-gcc44.patch
@@ -0,0 +1,9 @@
+diff -ur sdcc.orig/sim/ucsim/cmd.src/cmdlex.cc sdcc/sim/ucsim/cmd.src/cmdlex.cc
+--- sdcc.orig/sim/ucsim/cmd.src/cmdlex.cc 2004-07-16 19:32:30.000000000 +0300
++++ sdcc/sim/ucsim/cmd.src/cmdlex.cc 2009-08-10 11:09:58.000000000 +0300
+@@ -1,3 +1,5 @@
++#include <stdio.h>
++
+ #line 2 "cmdlex.cc"
+
+ #line 4 "cmdlex.cc"
diff --git a/dev-embedded/sdcc/files/sdcc-2.9.0-build.patch b/dev-embedded/sdcc/files/sdcc-2.9.0-build.patch
new file mode 100644
index 000000000000..b944b00d83a5
--- /dev/null
+++ b/dev-embedded/sdcc/files/sdcc-2.9.0-build.patch
@@ -0,0 +1,51 @@
+fix parallel build issues
+
+--- sdcc/device/lib/Makefile.in
++++ sdcc/device/lib/Makefile.in
+@@ -347,37 +347,21 @@
+ cp -f $(PORT)/bin/*.* $(SDCCPORTDIR); \
+ fi
+
+-$(LIB_FILES): $(OBJECTS_FLOAT) $(OBJECTS_INT) $(OBJECTS_LONG) $(OBJECTS_SDCC)
+ ifeq ($(LIB_TYPE), SDCCLIB)
+- ../../bin/sdcclib -a $(SDCCPORTDIR)/libfloat.lib $(OBJECTS_FLOAT)
+- ../../bin/sdcclib -a $(SDCCPORTDIR)/libint.lib $(OBJECTS_INT)
+- ../../bin/sdcclib -a $(SDCCPORTDIR)/liblong.lib $(OBJECTS_LONG)
+- ../../bin/sdcclib -a $(SDCCPORTDIR)/libsdcc.lib $(OBJECTS_SDCC)
++mklib = ../../bin/sdcclib -a $@ $^
+ else ifeq ($(LIB_TYPE), AR)
+- ar -Scq $(SDCCPORTDIR)/libfloat.lib $(OBJECTS_FLOAT)
+- ar -Scq $(SDCCPORTDIR)/libint.lib $(OBJECTS_INT)
+- ar -Scq $(SDCCPORTDIR)/liblong.lib $(OBJECTS_LONG)
+- ar -Scq $(SDCCPORTDIR)/libsdcc.lib $(OBJECTS_SDCC)
++mklib = ar -Scq $@ $^
+ else ifeq ($(LIB_TYPE), RANLIB)
+- ar -Scq $(SDCCPORTDIR)/libfloat.lib $(OBJECTS_FLOAT); $(top_builddir)/bin/asranlib $(SDCCPORTDIR)/libfloat.lib
+- ar -Scq $(SDCCPORTDIR)/libint.lib $(OBJECTS_INT); $(top_builddir)/bin/asranlib $(SDCCPORTDIR)/libint.lib
+- ar -Scq $(SDCCPORTDIR)/liblong.lib $(OBJECTS_LONG); $(top_builddir)/bin/asranlib $(SDCCPORTDIR)/liblong.lib
+- ar -Scq $(SDCCPORTDIR)/libsdcc.lib $(OBJECTS_SDCC); $(top_builddir)/bin/asranlib $(SDCCPORTDIR)/libsdcc.lib
++mklib = ar -Scq $@ $^ && $(top_builddir)/bin/asranlib $@
+ else
+- rm -f $(SDCCPORTDIR)/libfloat.lib
+- for i in $(notdir $(basename $(OBJECTS_FLOAT))); do echo $$i >> $(SDCCPORTDIR)/libfloat.lib; done
+- cp $(OBJECTS_FLOAT) $(SDCCPORTDIR)
+- rm -f $(SDCCPORTDIR)/libint.lib
+- for i in $(notdir $(basename $(OBJECTS_INT))); do echo $$i >> $(SDCCPORTDIR)/libint.lib; done
+- cp $(OBJECTS_INT) $(SDCCPORTDIR)
+- rm -f $(SDCCPORTDIR)/liblong.lib
+- for i in $(notdir $(basename $(OBJECTS_LONG))); do echo $$i >> $(SDCCPORTDIR)/liblong.lib; done
+- cp $(OBJECTS_LONG) $(SDCCPORTDIR)
+- rm -f $(SDCCPORTDIR)/libsdcc.lib
+- for i in $(notdir $(basename $(OBJECTS_SDCC))); do echo $$i >> $(SDCCPORTDIR)/libsdcc.lib; done
+- cp $(OBJECTS_SDCC) $(SDCCPORTDIR)
++mklib = for i in $(notdir $(basename $^)); do echo $$i; done >> $@; cp $^ $(SDCCPORTDIR)
+ endif
+
++$(SDCCPORTDIR)/libfloat.lib: $(OBJECTS_FLOAT); $(mklib)
++$(SDCCPORTDIR)/libint.lib: $(OBJECTS_INT); $(mklib)
++$(SDCCPORTDIR)/liblong.lib: $(OBJECTS_LONG); $(mklib)
++$(SDCCPORTDIR)/libsdcc.lib: $(OBJECTS_SDCC); $(mklib)
++
+ clean_intermediate:
+ rm -f $(SDCCPORTDIR)/*.lst $(SDCCPORTDIR)/*.sym
+
diff --git a/dev-embedded/sdcc/files/sdcc-2.9.0-gcc44.patch b/dev-embedded/sdcc/files/sdcc-2.9.0-gcc44.patch
new file mode 100644
index 000000000000..fb4ac7918c51
--- /dev/null
+++ b/dev-embedded/sdcc/files/sdcc-2.9.0-gcc44.patch
@@ -0,0 +1,15 @@
+like fix already in upstream
+
+* sim/ucsim/cmd.src/cmdlex.cc: regenerated,
+ fix for parch #3038644: Fix for GCC-4.4 compile error
+
+--- trunk/sdcc/sim/ucsim/cmd.src/cmdlex.cc 2010/08/04 15:21:39 5910
++++ trunk/sdcc/sim/ucsim/cmd.src/cmdlex.cc 2010/08/04 17:17:09 5911
+@@ -85,6 +85,7 @@
+ #include <errno.h>
+ #include <cstdlib>
+ #include <cstring>
++#include <cstdio>
+ /* end standard C++ headers. */
+
+ #ifdef __cplusplus
diff --git a/dev-embedded/sdcc/files/sdcc-2.9.0-getline.patch b/dev-embedded/sdcc/files/sdcc-2.9.0-getline.patch
new file mode 100644
index 000000000000..f7ca6237cf57
--- /dev/null
+++ b/dev-embedded/sdcc/files/sdcc-2.9.0-getline.patch
@@ -0,0 +1,16 @@
+upstream has reworked their code, so just do a minimal hack for the older ver
+
+http://bugs.gentoo.org/270621
+
+--- sdcc/as/link/getline.h
++++ sdcc/as/link/getline.h
+@@ -30,6 +30,9 @@
+
+ #include <stdio.h>
+
++#undef getline /* just in case */
++#define getline sdcc_getline
++
+ #ifdef __cplusplus
+ extern "C"
+ {
diff --git a/dev-embedded/sdcc/files/sdcc-2.9.0-headers.patch b/dev-embedded/sdcc/files/sdcc-2.9.0-headers.patch
new file mode 100644
index 000000000000..58d10299aa8f
--- /dev/null
+++ b/dev-embedded/sdcc/files/sdcc-2.9.0-headers.patch
@@ -0,0 +1,209 @@
+fix from upstream for implicit decls
+
+--- trunk/sdcc/debugger/mcs51/sdcdb.c 2009/09/20 11:50:19 5517
++++ trunk/sdcc/debugger/mcs51/sdcdb.c 2010/04/14 16:18:37 5813
+@@ -34,6 +34,10 @@
+ #include <readline/readline.h>
+ #include <readline/history.h>
+ #endif /* HAVE_LIBREADLINE */
++#ifdef HAVE_UNISTD_H
++#include <unistd.h>
++#endif
++#include <sys/wait.h>
+
+ #ifdef SDCDB_DEBUG
+ int sdcdbDebug = 0;
+@@ -1609,7 +1609,7 @@ static void parseCmdLine (int argc, char **argv)
+ }
+
+ if (strncmp(argv[i],"-cd=",4) == 0) {
+- chdir(argv[i][4]);
++ chdir(&argv[i][4]);
+ continue;
+ }
+
+--- trunk/sdcc/debugger/mcs51/config.h.in
++++ trunk/sdcc/debugger/mcs51/config.h.in
+@@ -15,6 +15,10 @@
+
+ #undef HAVE_LIBREADLINE
+
++#undef HAVE_UNISTD_H
++
++#undef HAVE_SYS_WAIT_H
++
+ #endif
+
+ /* End of config.h */
+
+fix from upstream for collision between "link" in unistd.h and local "link"
+
+--- trunk/sdcc/debugger/mcs51/symtab.h 2006/09/16 14:10:20 4379
++++ trunk/sdcc/debugger/mcs51/symtab.h 2010/04/14 16:18:37 5813
+@@ -106,13 +106,13 @@
+ short num_elem; /* # of elems if type==array */
+ short ptr_const :1; /* pointer is constant */
+ short ptr_volatile:1; /* pointer is volatile */
+- struct link *tspec; /* pointer type specifier */
++ struct st_link *tspec; /* pointer type specifier */
+ } declarator ;
+
+ #define DECLARATOR 0
+ #define SPECIFIER 1
+
+-typedef struct link {
++typedef struct st_link {
+ unsigned class : 1 ; /* DECLARATOR or SPECIFIER */
+ unsigned tdef : 1 ; /* current link created by */
+ /* typedef if this flag is set*/
+@@ -121,8 +121,8 @@
+ declarator d ; /* if CLASS == DECLARATOR */
+ } select ;
+
+- struct link *next ; /* next element on the chain */
+-} link ;
++ struct st_link *next ; /* next element on the chain */
++} st_link ;
+
+ typedef struct symbol {
+ char *name ;
+@@ -136,8 +136,8 @@
+ unsigned addr ; /* address if the symbol */
+ unsigned eaddr ; /* end address for functions */
+ char addr_type ; /* which address space */
+- link *type ; /* start of type chain */
+- link *etype ; /* end of type chain */
++ st_link *type ; /* start of type chain */
++ st_link *etype ; /* end of type chain */
+ char scopetype ; /* 'G' global, 'F' - file, 'L' local */
+ char *sname ; /* if 'F' or 'L' then scope name */
+ char *rname ; /* real name i.e. mangled beyond recognition */
+@@ -242,6 +242,6 @@
+ DEFSETFUNC(moduleWithName);
+ DEFSETFUNC(moduleWithCName);
+ DEFSETFUNC(moduleWithAsmName);
+-unsigned int getSize (link *);
++unsigned int getSize (st_link *);
+
+ #endif
+
+--- a/sdcc/debugger/mcs51/symtab.c
++++ b/sdcc/debugger/mcs51/symtab.c
+@@ -31,7 +31,7 @@ DEFSETFUNC(symWithRName);
+ /*------------------------------------------------------------------*/
+ /* getSize - returns size of a type chain in bits */
+ /*------------------------------------------------------------------*/
+-unsigned int getSize ( link *p )
++unsigned int getSize ( st_link *p )
+ {
+ /* if nothing return 0 */
+ if ( ! p )
+@@ -127,8 +127,8 @@ static char *parseTypeInfo (symbol *sym, char *s)
+ /* bp now points to '}' ... go past it */
+ s = ++bp;
+ while (*s != ')') { /* till we reach the end */
+- link *type;
+- type = Safe_calloc(1,sizeof(link));
++ st_link *type;
++ type = Safe_calloc(1,sizeof(st_link));
+ if (*s == ',') s++;
+
+ /* is a declarator */
+--- a/sdcc/debugger/mcs51/cmd.c
++++ b/sdcc/debugger/mcs51/cmd.c
+@@ -327,8 +327,8 @@ static char *warranty=
+ "POSSIBILITY OF SUCH DAMAGES.\n";
+ #endif
+
+-static void printTypeInfo(link *);
+-static void printValAggregates (symbol *,link *,char,unsigned int,int);
++static void printTypeInfo(st_link *);
++static void printValAggregates (symbol *,st_link *,char,unsigned int,int);
+ static int printOrSetSymValue (symbol *sym, context *cctxt,
+ int flg, int dnum, int fmt,
+ char *rs, char *val, char cmp);
+@@ -2323,7 +2323,7 @@ int cmdListSrc (char *s, context *cctxt)
+ return 0;
+ }
+
+-static unsigned long getValBasic(symbol *sym, link *type, char *val)
++static unsigned long getValBasic(symbol *sym, st_link *type, char *val)
+ {
+ char *s;
+ union
+@@ -2347,7 +2347,7 @@ static unsigned long getValBasic(symbol *sym, link *type, char *val)
+ {
+ if (IS_INTEGRAL(type))
+ {
+- link *etype;
++ st_link *etype;
+ if ( type->next )
+ etype = type->next;
+ else
+@@ -2460,7 +2460,7 @@ static void printFmtInteger(char *deffmt,int fmt, long val,
+ /*-----------------------------------------------------------------*/
+ /* printValBasic - print value of basic types */
+ /*-----------------------------------------------------------------*/
+-static void printValBasic(symbol *sym, link *type,
++static void printValBasic(symbol *sym, st_link *type,
+ char mem, unsigned addr,int size, int fmt)
+ {
+ union {
+@@ -2484,7 +2484,7 @@ static void printValBasic(symbol *sym, link *type,
+ else
+ if (IS_INTEGRAL(type))
+ {
+- link *etype;
++ st_link *etype;
+ if ( type->next )
+ etype = type->next;
+ else
+@@ -2534,10 +2534,10 @@ static void printValFunc (symbol *sym, int fmt)
+ /*-----------------------------------------------------------------*/
+ /* printArrayValue - will print the values of array elements */
+ /*-----------------------------------------------------------------*/
+-static void printArrayValue (symbol *sym, link *type,
++static void printArrayValue (symbol *sym, st_link *type,
+ char space, unsigned int addr, int fmt)
+ {
+- link *elem_type = type->next;
++ st_link *elem_type = type->next;
+ int i;
+
+ fprintf(stdout,"{");
+@@ -2558,7 +2558,7 @@ static void printArrayValue (symbol *sym, link *type,
+ /*-----------------------------------------------------------------*/
+ /* printStructValue - prints structures elements */
+ /*-----------------------------------------------------------------*/
+-static void printStructValue (symbol *sym, link *type,
++static void printStructValue (symbol *sym, st_link *type,
+ char space, unsigned int addr, int fmt)
+ {
+ symbol *fields = SPEC_STRUCT(type)->fields;
+@@ -2581,7 +2581,7 @@ static void printStructValue (symbol *sym, link *type,
+ /*-----------------------------------------------------------------*/
+ /* printValAggregates - print value of aggregates */
+ /*-----------------------------------------------------------------*/
+-static void printValAggregates (symbol *sym, link *type,
++static void printValAggregates (symbol *sym, st_link *type,
+ char space,unsigned int addr, int fmt)
+ {
+
+@@ -2606,7 +2606,7 @@ static int printOrSetSymValue (symbol *sym, context *cctxt,
+ static char fmtChar[] = " todx ";
+ static int stack = 1;
+ symbol *fields;
+- link *type;
++ st_link *type;
+ unsigned int addr;
+ int size, n;
+ char *s, *s2;
+@@ -2808,7 +2808,7 @@ static void printStructInfo (structdef *sdef)
+ /*-----------------------------------------------------------------*/
+ /* printTypeInfo - print out the type information */
+ /*-----------------------------------------------------------------*/
+-static void printTypeInfo(link *p)
++static void printTypeInfo(st_link *p)
+ {
+ if (!p)
+ return ;
diff --git a/dev-embedded/sdcc/metadata.xml b/dev-embedded/sdcc/metadata.xml
new file mode 100644
index 000000000000..c0f3e2174edd
--- /dev/null
+++ b/dev-embedded/sdcc/metadata.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>embedded@gentoo.org</email>
+ <name>Embedded Gentoo</name>
+ </maintainer>
+ <longdescription>
+SDCC is a retargettable, optimizing ANSI - C compiler suite that targets the Intel MCS51 based microprocessors (8031, 8032, 8051, 8052, etc.), Maxim (formerly Dallas) DS80C390 variants, Freescale (formerly Motorola) HC08 based (hc08, s08), Zilog Z80 based MCUs (z80, z180, gbz80, Rabbit 2000/3000, Rabbit 3000A, TLCS-90) and STMicroelectronics STM8. It can be retargeted for other microprocessors.
+ </longdescription>
+ <upstream>
+ <remote-id type="sourceforge">sdcc</remote-id>
+ </upstream>
+ <use>
+ <flag name="boehm-gc">Enable Hans Boehm's garbage collector <pkg>dev-libs/boehm-gc</pkg></flag>
+ <flag name="device-lib">Enable built of devices libraries</flag>
+ <flag name="ds390">Add support for Dallas DS390</flag>
+ <flag name="ds400">Add support for Dallas DS400</flag>
+ <flag name="gbz80">Add support for Gameboy gbz80</flag>
+ <flag name="hc08">Add support for Freescale/Motorola HC08 based</flag>
+ <flag name="mcs51">Add support for Intel mcs51</flag>
+ <flag name="non-free">Enable non-free runtime library parts</flag>
+ <flag name="packihx">Enable Intel HEX files pack utility</flag>
+ <flag name="pic14">Add support for Microchip 14 bits PICs</flag>
+ <flag name="pic16">Add support for Microchip 16 bits PICs</flag>
+ <flag name="r2k">Add support for Rabbit 2000</flag>
+ <flag name="r3ka">Add support for Rabbit 3000A</flag>
+ <flag name="s08">Add support for Freescale/Motorola S08</flag>
+ <flag name="sdbinutils">Enable SDCC library archive utilities sdar, sdranlib, sdnm</flag>
+ <flag name="sdcdb">Enable SDCC source level debugger</flag>
+ <flag name="sdcpp">Enable SDCC preprocessor based on GCC cpp</flag>
+ <flag name="stm8">Add support for STMicroelectronics STM8</flag>
+ <flag name="tlcs90">Add support for TLCS-90</flag>
+ <flag name="ucsim">Enable software simulator for microcontrollers</flag>
+ <flag name="z180">Add support for Zilog Z180</flag>
+ <flag name="z80">Add support for Zilog Z80</flag>
+ </use>
+</pkgmetadata>
diff --git a/dev-embedded/sdcc/sdcc-2.5.0_p20060502.ebuild b/dev-embedded/sdcc/sdcc-2.5.0_p20060502.ebuild
new file mode 100644
index 000000000000..ffb2b28b46c6
--- /dev/null
+++ b/dev-embedded/sdcc/sdcc-2.5.0_p20060502.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+inherit eutils
+
+MY_PV=${PV/*_p/}
+DESCRIPTION="Small device C compiler (for various microprocessors)"
+HOMEPAGE="http://sdcc.sourceforge.net/"
+SRC_URI="http://sdcc.sourceforge.net/snapshots/sdcc-src/${PN}-src-${MY_PV}.tar.gz
+ doc? ( http://sdcc.sourceforge.net/snapshots/docs/${PN}-doc-${MY_PV}.tar.gz )"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE="doc"
+
+DEPEND=">=dev-embedded/gputils-0.13.2
+ dev-libs/boehm-gc"
+RDEPEND="!dev-embedded/sdcc-svn
+ !dev-embedded/sdcc-svn"
+
+S=${WORKDIR}/${PN}
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+
+ # Fix conflicting variable names between Gentoo and sdcc
+ find ./ -type f -exec sed -i s:PORTDIR:PORTINGDIR:g {} \; || die "sed failed"
+ find device/lib/pic*/ -type f -exec sed -i s:ARCH:SDCCARCH:g {} \; || die "sed failed"
+ find device/lib/pic/libdev/ -type f -exec sed -i s:CFLAGS:SDCCFLAGS:g {} \; || die "sed failed"
+
+ # --as-needed fix :
+ sed -i -e "s/= @CURSES_LIBS@ @LIBS@/= @CURSES_LIBS@ @LIBS@ -lcurses/" sim/ucsim/gui.src/serio.src/Makefile.in || die "sed failed"
+}
+
+src_compile() {
+ econf --enable-libgc docdir=/usr/share/doc/${PF} || die "configure failed"
+ emake || die "emake failed"
+}
+
+src_install() {
+ make DESTDIR="${D}" install || die "Install failed"
+ dodoc ChangeLog
+ if use doc ; then
+ cp -pPR "${WORKDIR}"/doc/* "${D}"/usr/share/doc/${PF}/
+ fi
+ find "${D}"/usr/share/doc/${PF}/ -name *.txt -exec gzip -f -9 {} \;
+ find "${D}"/usr/share/doc/${PF}/ -name */*.txt -exec gzip -f -9 {} \;
+}
diff --git a/dev-embedded/sdcc/sdcc-2.6.0.ebuild b/dev-embedded/sdcc/sdcc-2.6.0.ebuild
new file mode 100644
index 000000000000..d490da6133ee
--- /dev/null
+++ b/dev-embedded/sdcc/sdcc-2.6.0.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+DESCRIPTION="Small device C compiler (for various microprocessors)"
+HOMEPAGE="http://sdcc.sourceforge.net/"
+SRC_URI="mirror://sourceforge/sdcc/${PN}-src-${PV}.tar.gz
+ doc? ( mirror://sourceforge/sdcc/${PN}-doc-${PV}.tar.gz )"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="doc"
+
+DEPEND=">=dev-embedded/gputils-0.13.2
+ dev-libs/boehm-gc"
+RDEPEND="!dev-embedded/sdcc-svn"
+
+S=${WORKDIR}/${PN}
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+
+ # Fix conflicting variable names between Gentoo and sdcc
+ find ./ -type f -exec sed -i s:PORTDIR:PORTINGDIR:g {} \; || die "sed failed"
+ find device/lib/pic*/ -type f -exec sed -i s:ARCH:SDCCARCH:g {} \; || die "sed failed"
+ find device/lib/pic/libdev/ -type f -exec sed -i s:CFLAGS:SDCCFLAGS:g {} \; || die "sed failed"
+
+ # --as-needed fix :
+ sed -i -e "s/= @CURSES_LIBS@ @LIBS@/= @CURSES_LIBS@ @LIBS@ -lcurses/" sim/ucsim/gui.src/serio.src/Makefile.in || die "sed failed"
+}
+
+src_compile() {
+ econf --enable-libgc docdir=/usr/share/doc/${PF} || die "configure failed"
+ emake || die "emake failed"
+}
+
+src_install() {
+ make DESTDIR="${D}" install || die "Install failed"
+ dodoc ChangeLog
+ if use doc ; then
+ cp -pPR "${WORKDIR}"/doc/* "${D}"/usr/share/doc/${PF}/
+ fi
+ find "${D}"/usr/share/doc/${PF}/ -name *.txt -exec gzip -f -9 {} \;
+ find "${D}"/usr/share/doc/${PF}/ -name */*.txt -exec gzip -f -9 {} \;
+}
diff --git a/dev-embedded/sdcc/sdcc-2.7.0.ebuild b/dev-embedded/sdcc/sdcc-2.7.0.ebuild
new file mode 100644
index 000000000000..79185f92578c
--- /dev/null
+++ b/dev-embedded/sdcc/sdcc-2.7.0.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+DESCRIPTION="Small device C compiler (for various microprocessors)"
+HOMEPAGE="http://sdcc.sourceforge.net/"
+SRC_URI="mirror://sourceforge/sdcc/${PN}-src-${PV}.tar.bz2
+ doc? ( mirror://sourceforge/sdcc/${PN}-doc-${PV}.tar.bz2 )"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="doc"
+
+DEPEND=">=dev-embedded/gputils-0.13.2
+ dev-libs/boehm-gc"
+RDEPEND="!dev-embedded/sdcc-svn"
+
+S=${WORKDIR}/${PN}
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+
+ # Fix conflicting variable names between Gentoo and sdcc
+ find ./ -type f -exec sed -i s:PORTDIR:PORTINGDIR:g {} \; || die "sed failed"
+ find device/lib/pic*/ -type f -exec sed -i s:ARCH:SDCCARCH:g {} \; || die "sed failed"
+ find device/lib/pic/libdev/ -type f -exec sed -i s:CFLAGS:SDCCFLAGS:g {} \; || die "sed failed"
+
+ # --as-needed fix :
+ sed -i -e "s/= @CURSES_LIBS@ @LIBS@/= @CURSES_LIBS@ @LIBS@ -lcurses/" sim/ucsim/gui.src/serio.src/Makefile.in || die "sed failed"
+}
+
+src_compile() {
+ econf --enable-libgc docdir=/usr/share/doc/${PF} || die "configure failed"
+ emake || die "emake failed"
+}
+
+src_install() {
+ make DESTDIR="${D}" install || die "Install failed"
+ dodoc ChangeLog
+ if use doc ; then
+ cp -pPR "${WORKDIR}"/doc/* "${D}"/usr/share/doc/${PF}/
+ fi
+ find "${D}"/usr/share/doc/${PF}/ -name *.txt -exec gzip -f -9 {} \;
+ find "${D}"/usr/share/doc/${PF}/ -name */*.txt -exec gzip -f -9 {} \;
+}
diff --git a/dev-embedded/sdcc/sdcc-2.8.0.ebuild b/dev-embedded/sdcc/sdcc-2.8.0.ebuild
new file mode 100644
index 000000000000..772a0c0d2fc6
--- /dev/null
+++ b/dev-embedded/sdcc/sdcc-2.8.0.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+inherit eutils autotools
+
+DESCRIPTION="Small device C compiler (for various microprocessors)"
+HOMEPAGE="http://sdcc.sourceforge.net/"
+SRC_URI="mirror://sourceforge/sdcc/${PN}-src-${PV}.tar.bz2
+ doc? ( mirror://sourceforge/sdcc/${PN}-doc-${PV}.tar.bz2 )"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="boehm-gc doc"
+
+DEPEND=">=dev-embedded/gputils-0.13.2
+ boehm-gc? ( dev-libs/boehm-gc )"
+RDEPEND="!dev-embedded/sdcc-svn"
+
+S=${WORKDIR}/${PN}
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+
+ # Fix conflicting variable names between Gentoo and sdcc
+ find ./ -type f -exec sed -i s:PORTDIR:PORTINGDIR:g {} \; || die "sed failed"
+ find device/lib/pic*/ -type f -exec sed -i s:ARCH:SDCCARCH:g {} \; || die "sed failed"
+ find device/lib/pic/libdev/ -type f -exec sed -i s:CFLAGS:SDCCFLAGS:g {} \; || die "sed failed"
+
+ # Fix automagic C{,XX}FLAGS
+ epatch "${FILESDIR}"/${P}-flags.patch
+ epatch "${FILESDIR}"/${P}-gcc44.patch
+
+ # We'll install doc manually
+ sed -i -e '/SDCC_DOC/d' Makefile.in || die "sed failed"
+ sed -i -e 's/all install-doc/all/' as/Makefile.in || die "sed failed"
+ sed -i -e 's/ doc//' sim/ucsim/packages_in.mk || die "sed failed"
+
+ eautoreconf
+}
+
+src_compile() {
+ econf \
+ $(use_enable boehm-gc libgc) \
+ --disable-doc \
+ || die "configure failed"
+ emake || die "emake failed"
+}
+
+src_install() {
+ make DESTDIR="${D}" install || die "Install failed"
+
+ insinto /usr/share/doc/${PF}
+ if use doc ; then
+ cd "${WORKDIR}"/doc
+ dohtml -r *.html ucsim
+ rm -rf *.html ucsim
+ dohtml as/asxhtm.html
+ rm -f as/asxhtm.html
+ rm -f INSTALL.txt
+ else
+ dohtml as/doc/asxhtm.html
+ rm -f as/doc/asxhtm.html
+ mv as/doc as/as || die "Failed to rename as/doc"
+ doins -r as/as
+ mv sim/ucsim/doc sim/ucsim/ucsim || die "Failed to rename sim/ucsim/doc"
+ dohtml -r sim/ucsim/ucsim
+ rm -f INSTALL.txt Makefile* *.mk
+ cd doc
+ fi
+ doins -r *
+ prepalldocs
+}
diff --git a/dev-embedded/sdcc/sdcc-2.9.0.ebuild b/dev-embedded/sdcc/sdcc-2.9.0.ebuild
new file mode 100644
index 000000000000..0c0cdc553a66
--- /dev/null
+++ b/dev-embedded/sdcc/sdcc-2.9.0.ebuild
@@ -0,0 +1,96 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="2"
+
+inherit eutils
+
+if [[ ${PV} == "9999" ]] ; then
+ ESVN_REPO_URI="https://svn.code.sf.net/p/sdcc/code/trunk/sdcc"
+ inherit subversion autotools
+ docs_compile() { return 0; }
+else
+ SRC_URI="mirror://sourceforge/sdcc/${PN}-src-${PV}.tar.bz2
+ doc? ( mirror://sourceforge/sdcc/${PN}-doc-${PV}.tar.bz2 )"
+ KEYWORDS="~amd64 ~ppc ~x86"
+ docs_compile() { return 1; }
+fi
+
+DESCRIPTION="Small device C compiler (for various microprocessors)"
+HOMEPAGE="http://sdcc.sourceforge.net/"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="+boehm-gc doc"
+RESTRICT="strip"
+
+RDEPEND="sys-libs/ncurses
+ sys-libs/readline
+ >=dev-embedded/gputils-0.13.7
+ boehm-gc? ( dev-libs/boehm-gc )
+ !dev-embedded/sdcc-svn"
+DEPEND="${RDEPEND}"
+if docs_compile ; then
+ DEPEND+="
+ doc? (
+ >=app-office/lyx-1.3.4
+ dev-tex/latex2html
+ )"
+fi
+
+S=${WORKDIR}/${PN}
+
+src_prepare() {
+ # Fix conflicting variable names between Gentoo and sdcc
+ find \
+ '(' -name 'Makefile*.in' -o -name configure ')' \
+ -exec sed -r -i \
+ -e 's:\<(PORTDIR|ARCH)\>:SDCC\1:g' \
+ {} + || die
+
+ epatch "${FILESDIR}"/${P}-gcc44.patch
+ epatch "${FILESDIR}"/${P}-getline.patch
+ epatch "${FILESDIR}"/${P}-headers.patch
+ epatch "${FILESDIR}"/${P}-build.patch
+
+ # We'll install doc manually
+ sed -i -e '/SDCC_DOC/d' Makefile.in || die
+ sed -i -e 's/all install-doc/all/' as/Makefile.in || die
+ sed -i -e 's/ doc//' sim/ucsim/packages_in.mk || die
+
+ [[ ${PV} == "9999" ]] && eautoreconf
+}
+
+src_configure() {
+ ac_cv_prog_STRIP=true \
+ econf \
+ $(use_enable boehm-gc libgc) \
+ $(docs_compile && use_enable doc || echo --disable-doc)
+}
+
+fsrc_compile() {
+ emake || die
+ if docs_compile && use doc ; then
+ cd doc
+ local d
+ for d in cdbfileformat sdccman test_suite_spec ; do
+ lyx -e html ${d} || die
+ done
+ fi
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die
+ dodoc doc/*.txt doc/*/*.txt
+ find "${D}" -name .deps -exec rm -rf {} +
+
+ if use doc ; then
+ docs_compile || cd "${WORKDIR}"/doc
+ dohtml -r *
+ fi
+
+ # a bunch of archives (*.a) are built & installed by gputils
+ # for PIC processors, but they do not work with standard `ar`
+ # & `scanelf` utils and they're not for the host.
+ env RESTRICT="" prepstrip "${D%/}"/usr/bin
+}
diff --git a/dev-embedded/sdcc/sdcc-3.5.0.ebuild b/dev-embedded/sdcc/sdcc-3.5.0.ebuild
new file mode 100644
index 000000000000..fdc35714a019
--- /dev/null
+++ b/dev-embedded/sdcc/sdcc-3.5.0.ebuild
@@ -0,0 +1,120 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+inherit eutils toolchain-funcs
+
+if [[ ${PV} == "9999" ]] ; then
+ ESVN_REPO_URI="https://svn.code.sf.net/p/sdcc/code/trunk/sdcc"
+ inherit subversion
+ docs_compile() { return 0; }
+else
+ SRC_URI="mirror://sourceforge/sdcc/${PN}-src-${PV}.tar.bz2
+ doc? ( mirror://sourceforge/sdcc/${PN}-doc-${PV}.tar.bz2 )"
+ KEYWORDS="~amd64 ~ppc ~x86"
+ docs_compile() { return 1; }
+fi
+
+DESCRIPTION="Small device C compiler (for various microprocessors)"
+HOMEPAGE="http://sdcc.sourceforge.net/"
+
+LICENSE="GPL-2 ZLIB
+ non-free? ( MicroChip-SDCC )
+ packihx? ( public-domain )"
+SLOT="0"
+IUSE="mcs51 z80 z180 r2k r3ka gbz80 tlcs90 ds390 ds400 pic14 pic16 hc08 s08 stm8
+ucsim device-lib packihx +sdcpp sdcdb sdbinutils non-free +boehm-gc doc"
+
+REQUIRED_USE="
+ mcs51? ( sdbinutils )
+ ds390? ( sdbinutils )
+ ds400? ( sdbinutils )
+ hc08? ( sdbinutils )
+ s08? ( sdbinutils )"
+
+RESTRICT="strip"
+
+RDEPEND="dev-libs/boost:=
+ sys-libs/ncurses:=
+ sys-libs/readline:0=
+ >=dev-embedded/gputils-0.13.7
+ boehm-gc? ( dev-libs/boehm-gc:= )
+ !dev-embedded/sdcc-svn"
+DEPEND="${RDEPEND}
+ dev-util/gperf"
+if docs_compile ; then
+ DEPEND+="
+ doc? (
+ >=app-office/lyx-1.3.4
+ dev-tex/latex2html
+ )"
+fi
+
+src_prepare() {
+ # Fix conflicting variable names between Gentoo and sdcc
+ find \
+ '(' -name 'Makefile*.in' -o -name 'configure' ')' \
+ -exec sed -r -i \
+ -e 's:\<(PORTDIR|ARCH)\>:SDCC\1:g' \
+ {} + || die
+
+ # https://sourceforge.net/p/sdcc/bugs/2398/
+ sed -i '1iAR = @AR@' Makefile.common.in || die
+ sed -i \
+ -e "/^AR =/s:=.*:=$(tc-getAR):" \
+ support/cpp/Makefile.in || die
+
+ # Make sure timestamps don't get messed up.
+ [[ ${PV} == "9999" ]] && find "${S}" -type f -exec touch -r . {} +
+}
+
+src_configure() {
+ # sdbinutils subdir doesn't pass down --docdir properly, so need to
+ # expand $(datarootdir) ourselves.
+ econf \
+ ac_cv_prog_STRIP=true \
+ ac_cv_prog_AS="$(tc-getAS)" \
+ ac_cv_prog_AR="$(tc-getAR)" \
+ --docdir="${EPREFIX}/usr/share/doc/${PF}" \
+ --without-ccache \
+ $(use_enable mcs51 mcs51-port) \
+ $(use_enable z80 z80-port) \
+ $(use_enable z180 z180-port) \
+ $(use_enable r2k r2k-port) \
+ $(use_enable r3ka r3ka-port) \
+ $(use_enable gbz80 gbz80-port) \
+ $(use_enable tlcs90 tlcs90-port) \
+ $(use_enable ds390 ds390-port) \
+ $(use_enable ds400 ds400-port) \
+ $(use_enable pic14 pic14-port) \
+ $(use_enable pic16 pic16-port) \
+ $(use_enable hc08 hc08-port) \
+ $(use_enable s08 s08-port) \
+ $(use_enable stm8 stm8-port) \
+ $(use_enable ucsim ucsim) \
+ $(use_enable device-lib device-lib) \
+ $(use_enable packihx packihx) \
+ $(use_enable sdcpp sdcpp) \
+ $(use_enable sdcdb sdcdb) \
+ $(use_enable sdbinutils sdbinutils) \
+ $(use_enable non-free non-free) \
+ $(use_enable boehm-gc libgc) \
+ $(docs_compile && use_enable doc || echo --disable-doc)
+}
+
+src_install() {
+ default
+ dodoc doc/*.txt
+ find "${D}" -name .deps -exec rm -rf {} + || die
+
+ if use doc ; then
+ docs_compile || cd "${WORKDIR}"/doc
+ dohtml -r *
+ fi
+
+ # a bunch of archives (*.a) are built & installed by gputils
+ # for PIC processors, but they do not work with standard `ar`
+ # & `scanelf` utils and they're not for the host.
+ env RESTRICT="" prepstrip "${D%/}"/usr/bin
+}
diff --git a/dev-embedded/sdcc/sdcc-9999.ebuild b/dev-embedded/sdcc/sdcc-9999.ebuild
new file mode 100644
index 000000000000..fdc35714a019
--- /dev/null
+++ b/dev-embedded/sdcc/sdcc-9999.ebuild
@@ -0,0 +1,120 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+inherit eutils toolchain-funcs
+
+if [[ ${PV} == "9999" ]] ; then
+ ESVN_REPO_URI="https://svn.code.sf.net/p/sdcc/code/trunk/sdcc"
+ inherit subversion
+ docs_compile() { return 0; }
+else
+ SRC_URI="mirror://sourceforge/sdcc/${PN}-src-${PV}.tar.bz2
+ doc? ( mirror://sourceforge/sdcc/${PN}-doc-${PV}.tar.bz2 )"
+ KEYWORDS="~amd64 ~ppc ~x86"
+ docs_compile() { return 1; }
+fi
+
+DESCRIPTION="Small device C compiler (for various microprocessors)"
+HOMEPAGE="http://sdcc.sourceforge.net/"
+
+LICENSE="GPL-2 ZLIB
+ non-free? ( MicroChip-SDCC )
+ packihx? ( public-domain )"
+SLOT="0"
+IUSE="mcs51 z80 z180 r2k r3ka gbz80 tlcs90 ds390 ds400 pic14 pic16 hc08 s08 stm8
+ucsim device-lib packihx +sdcpp sdcdb sdbinutils non-free +boehm-gc doc"
+
+REQUIRED_USE="
+ mcs51? ( sdbinutils )
+ ds390? ( sdbinutils )
+ ds400? ( sdbinutils )
+ hc08? ( sdbinutils )
+ s08? ( sdbinutils )"
+
+RESTRICT="strip"
+
+RDEPEND="dev-libs/boost:=
+ sys-libs/ncurses:=
+ sys-libs/readline:0=
+ >=dev-embedded/gputils-0.13.7
+ boehm-gc? ( dev-libs/boehm-gc:= )
+ !dev-embedded/sdcc-svn"
+DEPEND="${RDEPEND}
+ dev-util/gperf"
+if docs_compile ; then
+ DEPEND+="
+ doc? (
+ >=app-office/lyx-1.3.4
+ dev-tex/latex2html
+ )"
+fi
+
+src_prepare() {
+ # Fix conflicting variable names between Gentoo and sdcc
+ find \
+ '(' -name 'Makefile*.in' -o -name 'configure' ')' \
+ -exec sed -r -i \
+ -e 's:\<(PORTDIR|ARCH)\>:SDCC\1:g' \
+ {} + || die
+
+ # https://sourceforge.net/p/sdcc/bugs/2398/
+ sed -i '1iAR = @AR@' Makefile.common.in || die
+ sed -i \
+ -e "/^AR =/s:=.*:=$(tc-getAR):" \
+ support/cpp/Makefile.in || die
+
+ # Make sure timestamps don't get messed up.
+ [[ ${PV} == "9999" ]] && find "${S}" -type f -exec touch -r . {} +
+}
+
+src_configure() {
+ # sdbinutils subdir doesn't pass down --docdir properly, so need to
+ # expand $(datarootdir) ourselves.
+ econf \
+ ac_cv_prog_STRIP=true \
+ ac_cv_prog_AS="$(tc-getAS)" \
+ ac_cv_prog_AR="$(tc-getAR)" \
+ --docdir="${EPREFIX}/usr/share/doc/${PF}" \
+ --without-ccache \
+ $(use_enable mcs51 mcs51-port) \
+ $(use_enable z80 z80-port) \
+ $(use_enable z180 z180-port) \
+ $(use_enable r2k r2k-port) \
+ $(use_enable r3ka r3ka-port) \
+ $(use_enable gbz80 gbz80-port) \
+ $(use_enable tlcs90 tlcs90-port) \
+ $(use_enable ds390 ds390-port) \
+ $(use_enable ds400 ds400-port) \
+ $(use_enable pic14 pic14-port) \
+ $(use_enable pic16 pic16-port) \
+ $(use_enable hc08 hc08-port) \
+ $(use_enable s08 s08-port) \
+ $(use_enable stm8 stm8-port) \
+ $(use_enable ucsim ucsim) \
+ $(use_enable device-lib device-lib) \
+ $(use_enable packihx packihx) \
+ $(use_enable sdcpp sdcpp) \
+ $(use_enable sdcdb sdcdb) \
+ $(use_enable sdbinutils sdbinutils) \
+ $(use_enable non-free non-free) \
+ $(use_enable boehm-gc libgc) \
+ $(docs_compile && use_enable doc || echo --disable-doc)
+}
+
+src_install() {
+ default
+ dodoc doc/*.txt
+ find "${D}" -name .deps -exec rm -rf {} + || die
+
+ if use doc ; then
+ docs_compile || cd "${WORKDIR}"/doc
+ dohtml -r *
+ fi
+
+ # a bunch of archives (*.a) are built & installed by gputils
+ # for PIC processors, but they do not work with standard `ar`
+ # & `scanelf` utils and they're not for the host.
+ env RESTRICT="" prepstrip "${D%/}"/usr/bin
+}