blob: 3b9b8af39362c30e0973b43a81167047a4f79819 (
plain)
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
  | 
#!/bin/sh
# this script is very *alpha* so be gentle...
# change these lines to your arch and maintainer name
ARCH="avr32"
PACK_MAINTAINER="John Voltz <john.voltz@gmail.com>"
BUILDROOT_DIR=`pwd`
echo "Creating ipkgs from your build directory..."
echo "Please be patient, as this can take a long time.
			"
# create the ipkg directories
mkdir -p ${BUILDROOT_DIR}/ipkg-temp
mkdir -p ${BUILDROOT_DIR}/ipkg-out
for PACKAGE in `ls -d ./build_*/*`; do
	
	# extract some info
	NAME_WITHOUT_VER=${PACKAGE%-*}
	VERSION=${PACKAGE#${NAME_WITHOUT_VER}-}
	NAME_WITHOUT_DIR=${NAME_WITHOUT_VER#*/*/}
	CLEAN_NAME=${NAME_WITHOUT_DIR//_/-}
	# clean out the temp directory
	rm -rf ${BUILDROOT_DIR}/ipkg-temp/*
	# install the package to temp directory
	cd ${PACKAGE}
	echo "Installing ${NAME_WITHOUT_DIR} to ./ipkg-temp"
	make DESTDIR=${BUILDROOT_DIR}/ipkg-temp DSTROOT=${BUILDROOT_DIR}/ipkg-temp install &> /dev/null 
	# create the control file
	cd ${BUILDROOT_DIR}
	mkdir ${BUILDROOT_DIR}/ipkg-temp/CONTROL
	# find it's corresponding buildroot package directory 
	PACK_NAME=`find ./package -path './package/config' -prune -o -name ${NAME_WITHOUT_DIR}`
	PACK_NAME=${PACK_NAME%./package/config}
	PACK_NAME=${PACK_NAME#./package/config}
	PACK_NAME=`echo -n ${PACK_NAME}`
	# there must be an better way to extract the description and 
	# dependencies from the Config.in and *.mk file. 
	# Haven't figured it out just yet.
	CONF_FILE=`cat ${PACK_NAME}/Config.in`
	#MAKE_FILE=`cat ${PACK_NAME}/*.mk`
	HELP_STR=${CONF_FILE#*help}
	HELP_STR=${HELP_STR%%comment*}
	HELP_STR=${HELP_STR%%choice*}
	HELP_STR=${HELP_STR%%depends*}
	HELP_STR=${HELP_STR%%http*}
	HELP_STR=`echo -n ${HELP_STR}`
	echo ${HELP_STR}
	if [ "${PACK_NAME}" != "" ]; then
		echo "Creating ipkg of: ${PACKAGE}"
cat > ${BUILDROOT_DIR}/ipkg-temp/CONTROL/control <<EOF
Package: ${CLEAN_NAME}
Priority: optional
Version: ${VERSION}
Architecture: ${ARCH}
Maintainer: ${PACK_MAINTAINER}
Depends: uclibc
Description: ${HELP_STR}
EOF
		# build the package
		package/ipkg/ipkg-build ${BUILDROOT_DIR}/ipkg-temp ${BUILDROOT_DIR}/ipkg-out
	fi
	echo "Complete.
					"
done
echo "ipkg builds are finished."
  |