--- misc/apr-util-1.4.1/Library_apr-util.mk	2012-01-05 14:49:40.529219100 +0100
+++ misc/build/apr-util-1.4.1/Library_apr-util.mk	2012-01-05 14:47:18.621102400 +0100
@@ -1 +1,89 @@
-dummy
+#/**************************************************************
+# * 
+# * 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.
+# * 
+# *************************************************************/
+
+$(eval $(call gb_Library_Library,apr-util))
+
+$(eval $(call gb_Library_add_package_headers,apr-util,apr-util_inc))
+
+$(eval $(call gb_Library_set_include,apr-util,\
+	$$(INCLUDE) \
+	-I./include \
+	-I./include/private \
+	-I$(OUTDIR)/inc/apr \
+))
+
+$(eval $(call gb_Library_add_defs,apr-util,\
+	-DAPU_DECLARE_EXPORT -DWIN32 -DNDEBUG -D_WINDOWS -D_USRDLL -DWIN32_EXPORTS \
+))
+
+$(eval $(call gb_Library_add_linked_libs,apr-util,\
+	apr \
+	expat_xmltok \
+	expat_xmlparse \
+    $(gb_STDLIBS) \
+))
+
+$(eval $(call gb_Library_add_cobjects,apr-util,\
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/buckets/apr_brigade \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/buckets/apr_buckets \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/buckets/apr_buckets_alloc \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/buckets/apr_buckets_eos \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/buckets/apr_buckets_file \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/buckets/apr_buckets_flush \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/buckets/apr_buckets_heap \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/buckets/apr_buckets_mmap \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/buckets/apr_buckets_pipe \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/buckets/apr_buckets_pool \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/buckets/apr_buckets_refcount \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/buckets/apr_buckets_simple \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/buckets/apr_buckets_socket \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/crypto/apr_crypto \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/crypto/apr_md4 \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/crypto/apr_md5 \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/crypto/apr_sha1 \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/crypto/getuuid \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/crypto/uuid \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/dbd/apr_dbd \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/dbm/apr_dbm \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/dbm/apr_dbm_sdbm \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/dbm/sdbm/sdbm \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/dbm/sdbm/sdbm_hash \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/dbm/sdbm/sdbm_lock \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/dbm/sdbm/sdbm_pair \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/encoding/apr_base64 \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/hooks/apr_hooks \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/ldap/apr_ldap_stub \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/ldap/apr_ldap_url \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/memcache/apr_memcache \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/misc/apr_date \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/misc/apr_queue \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/misc/apr_reslist \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/misc/apr_rmm \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/misc/apr_thread_pool \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/misc/apu_dso \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/misc/apu_version \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/strmatch/apr_strmatch \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/uri/apr_uri \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/xlate/xlate \
+	apr-util/$(INPATH)/misc/build/apr-util-1.4.1/xml/apr_xml \
+))
+
+# vim: set noet sw=4 ts=4:
--- misc/apr-util-1.4.1/Makefile	2012-01-05 14:49:40.420212900 +0100
+++ misc/build/apr-util-1.4.1/Makefile	2012-01-05 14:47:07.827485100 +0100
@@ -1 +1,32 @@
-dummy
+#/**************************************************************
+# * 
+# * 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.
+# * 
+# *************************************************************/
+
+ifeq ($(strip $(SOLARENV)),)
+$(error No environment set!)
+endif
+
+gb_PARTIALBUILD := T
+GBUILDDIR := $(SOLARENV)/gbuild
+include $(GBUILDDIR)/gbuild.mk
+
+$(eval $(call gb_Module_make_global_targets,$(shell ls $(dir $(realpath $(firstword $(MAKEFILE_LIST))))/Module*.mk)))
+
+# vim: set noet sw=4 ts=4:
--- misc/apr-util-1.4.1/Module_apr-util.mk	2012-01-05 14:49:40.476216100 +0100
+++ misc/build/apr-util-1.4.1/Module_apr-util.mk	2012-01-05 14:47:42.567472100 +0100
@@ -1 +1,29 @@
-dummy
+#/**************************************************************
+# * 
+# * 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.
+# * 
+# *************************************************************/
+
+$(eval $(call gb_Module_Module,apr-util))
+
+$(eval $(call gb_Module_add_targets,apr-util,\
+	Library_apr-util \
+	Package_inc \
+))
+
+# vim: set noet ts=4 sw=4:
--- misc/apr-util-1.4.1/Package_inc.mk	2012-01-05 14:49:40.585222300 +0100
+++ misc/build/apr-util-1.4.1/Package_inc.mk	2012-01-05 14:47:51.616989700 +0100
@@ -1 +1,32 @@
-dummy
+#/**************************************************************
+# * 
+# * 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.
+# * 
+# *************************************************************/
+
+$(eval $(call gb_Package_Package,apr-util_inc,$(EXT_LIBRARIES)/apr-util/$(INPATH)/misc/build/apr-util-1.4.1/include))
+$(eval $(call gb_Package_add_files, apr-util_inc, inc/apr-util,        \
+       apu.h                                                           \
+       apr_uri.h                                                       \
+       apr_date.h                                                      \
+       apr_uuid.h                                                      \
+       apr_md5.h                                                       \
+       apr_xlate.h                                                     \
+       apr_base64.h                                                    \
+))
+
