# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
# 
#     http://www.apache.org/licenses/LICENSE-2.0
# 
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

hy.depends=depends
depends.lib.dir=${hy.depends}/libs/${hy.platform}
awt.base=http://people.apache.org/~hindessm/classlib-depends/${hy.platform}
jpeg.ver=6b
jpeg.dir=${depends.lib.dir}/jpeg-${jpeg.ver}
jpeg.testfile=${jpeg.dir}/jversion.h
jpeg.tar=${depends.lib.dir}/harmony-jpeg-${jpeg.ver}.tar.gz
jpeg.url=${awt.base}/harmony-jpeg-${jpeg.ver}.tar.gz
jpeg.md5@x86@=84d69fb0eb5baca4e0dd36cf017dd6a6
jpeg.md5@x86_64@=1c111660a0e8d048286ac645bd72c22c

png.ver=1.4.3
png.dir=${depends.lib.dir}/libpng-${png.ver}
png.testfile=${png.dir}/png.h
png.tar=${depends.lib.dir}/harmony-libpng-${png.ver}.tar.gz
png.url=${awt.base}/harmony-libpng-${png.ver}.tar.gz
png.md5@x86@=e52e01bc0bafa6c7cfef466b0333e39f
png.md5@x86_64@=e16aa690c3f3eda4b6bdd9668c9cd32b
