Skip to content

Commit

Permalink
Proper autotools setup.
Browse files Browse the repository at this point in the history
  • Loading branch information
Jackson Harper committed Jun 19, 2010
1 parent 70076f8 commit 359bb67
Show file tree
Hide file tree
Showing 9 changed files with 490 additions and 1 deletion.
5 changes: 4 additions & 1 deletion MCloud/Makefile
Expand Up @@ -45,6 +45,9 @@ MCloud.dll: $(SOURCES)
test.exe: test.cs MCloud.dll
gmcs -r:MCloud.dll -debug test.cs

ndc-setup.exe: ndc-setup.cs MCloud.dll
gmcs -r:MCloud.dll -debug ndc-setup.cs

clean:
rm -rf MCloud.dll
rm -rf test.exe
rm -rf test.exe
147 changes: 147 additions & 0 deletions MCloud/Makefile.am
@@ -0,0 +1,147 @@

EXTRA_DIST =

# Warning: This is an automatically generated file, do not edit!

if ENABLE_DEBUG_X86
ASSEMBLY_COMPILER_COMMAND = gmcs
ASSEMBLY_COMPILER_FLAGS = -noconfig -codepage:utf8 -warn:4 -optimize- -debug "-define:DEBUG"
ASSEMBLY = bin/Debug/MCloud.dll
ASSEMBLY_MDB = $(ASSEMBLY).mdb
COMPILE_TARGET = library
PROJECT_REFERENCES =
BUILD_DIR = bin/Debug

AWSSDK_DLL_SOURCE=../lib/AWSSDK.dll
DIFFIEHELLMAN_DLL_SOURCE=../lib/DiffieHellman.dll
NEWTONSOFT_JSON_NET20_DLL_SOURCE=../lib/Newtonsoft.Json.Net20.dll
ORG_MENTALIS_SECURITY_DLL_SOURCE=../lib/Org.Mentalis.Security.dll
TAMIR_SHARPSSH_DLL_SOURCE=../lib/Tamir.SharpSSH.dll
MCLOUD_DLL_MDB_SOURCE=bin/Debug/MCloud.dll.mdb
MCLOUD_DLL_MDB=$(BUILD_DIR)/MCloud.dll.mdb

endif

if ENABLE_RELEASE_X86
ASSEMBLY_COMPILER_COMMAND = gmcs
ASSEMBLY_COMPILER_FLAGS = -noconfig -codepage:utf8 -warn:4 -optimize-
ASSEMBLY = bin/Release/MCloud.dll
ASSEMBLY_MDB =
COMPILE_TARGET = library
PROJECT_REFERENCES =
BUILD_DIR = bin/Release

AWSSDK_DLL_SOURCE=../lib/AWSSDK.dll
DIFFIEHELLMAN_DLL_SOURCE=../lib/DiffieHellman.dll
NEWTONSOFT_JSON_NET20_DLL_SOURCE=../lib/Newtonsoft.Json.Net20.dll
ORG_MENTALIS_SECURITY_DLL_SOURCE=../lib/Org.Mentalis.Security.dll
TAMIR_SHARPSSH_DLL_SOURCE=../lib/Tamir.SharpSSH.dll
MCLOUD_DLL_MDB=

endif

AL=al2
SATELLITE_ASSEMBLY_NAME=$(notdir $(basename $(ASSEMBLY))).resources.dll

PROGRAMFILES = \
$(AWSSDK_DLL) \
$(DIFFIEHELLMAN_DLL) \
$(NEWTONSOFT_JSON_NET20_DLL) \
$(ORG_MENTALIS_SECURITY_DLL) \
$(TAMIR_SHARPSSH_DLL) \
$(MCLOUD_DLL_MDB)

LINUX_PKGCONFIG = \
$(MCLOUD_PC)


RESGEN=resgen2

all: $(ASSEMBLY) $(PROGRAMFILES) $(LINUX_PKGCONFIG)

FILES = \
Entity.cs \
Node.cs \
NodeAuth.cs \
NodeAuthType.cs \
NodeDriver.cs \
NodeImage.cs \
NodeLocation.cs \
NodeOptions.cs \
NodeProvider.cs \
NodeSize.cs \
MCloud.Deploy/Deployment.cs \
MCloud.Deploy/MultiStepDeployment.cs \
MCloud.Deploy/PutSSHKeys.cs \
MCloud.EC2/EC2Driver.cs \
MCloud.EC2/EC2Node.cs \
MCloud.EC2/EC2NodeOptions.cs \
MCloud.EC2/EC2NodeSizes.cs \
MCloud.Linode/LinodeAPI.cs \
MCloud.Linode/LinodeCertificatePolicy.cs \
MCloud.Linode/LinodeDriver.cs \
MCloud.Linode/LinodeError.cs \
MCloud.Linode/LinodeNode.cs \
MCloud.Linode/LinodeNodeOptions.cs \
MCloud.Linode/LinodeRequest.cs \
MCloud.Linode/LinodeResponse.cs \
MCloud.Linode/PaymentTerm.cs \
NodeState.cs \
MCloud.Server/ServerNode.cs \
MCloud.Server/ServerDriver.cs \
MCloud.Deploy/PutDirectory.cs \
MCloud.Deploy/PutFile.cs \
MCloud.Deploy/PutFiles.cs \
MCloud.Deploy/RunCommand.cs \
MCloud.Deploy/SSHDeployment.cs \
MCloud.Deploy/RunScript.cs \
MCloud.Deploy/CreateUser.cs

DATA_FILES =

RESOURCES =

EXTRAS = \
MCloud.Server \
mcloud.pc.in

REFERENCES = \
System.Web \
System.Core \
System

DLL_REFERENCES = \
../lib/AWSSDK.dll \
../lib/DiffieHellman.dll \
../lib/Newtonsoft.Json.Net20.dll \
../lib/Org.Mentalis.Security.dll \
../lib/Tamir.SharpSSH.dll

CLEANFILES = $(PROGRAMFILES) $(LINUX_PKGCONFIG)

include $(top_srcdir)/Makefile.include

AWSSDK_DLL = $(BUILD_DIR)/AWSSDK.dll
DIFFIEHELLMAN_DLL = $(BUILD_DIR)/DiffieHellman.dll
NEWTONSOFT_JSON_NET20_DLL = $(BUILD_DIR)/Newtonsoft.Json.Net20.dll
ORG_MENTALIS_SECURITY_DLL = $(BUILD_DIR)/Org.Mentalis.Security.dll
TAMIR_SHARPSSH_DLL = $(BUILD_DIR)/Tamir.SharpSSH.dll
MCLOUD_PC = $(BUILD_DIR)/mcloud.pc

$(eval $(call emit-deploy-target,AWSSDK_DLL))
$(eval $(call emit-deploy-target,DIFFIEHELLMAN_DLL))
$(eval $(call emit-deploy-target,NEWTONSOFT_JSON_NET20_DLL))
$(eval $(call emit-deploy-target,ORG_MENTALIS_SECURITY_DLL))
$(eval $(call emit-deploy-target,TAMIR_SHARPSSH_DLL))
$(eval $(call emit-deploy-wrapper,MCLOUD_PC,mcloud.pc))


$(eval $(call emit_resgen_targets))
$(build_xamlg_list): %.xaml.g.cs: %.xaml
xamlg '$<'

$(ASSEMBLY_MDB): $(ASSEMBLY)

$(ASSEMBLY): $(build_sources) $(build_resources) $(build_datafiles) $(DLL_REFERENCES) $(PROJECT_REFERENCES) $(build_xamlg_list) $(build_satellite_assembly_list)
mkdir -p $(shell dirname $(ASSEMBLY))
$(ASSEMBLY_COMPILER_COMMAND) $(ASSEMBLY_COMPILER_FLAGS) -out:$(ASSEMBLY) -target:$(COMPILE_TARGET) $(build_sources_embed) $(build_resources_embed) $(build_references_ref)
6 changes: 6 additions & 0 deletions MCloud/mcloud.pc.in
@@ -0,0 +1,6 @@
Name: MCloud
Description: MCloud
Version: 0.1

Requires:
Libs: -r:@expanded_libdir@/@PACKAGE@/MCloud.dll
10 changes: 10 additions & 0 deletions Makefile.am
@@ -0,0 +1,10 @@

EXTRA_DIST = expansions.m4 lib/AWSSDK.dll lib/DiffieHellman.dll lib/Newtonsoft.Json.Net20.dll lib/Org.Mentalis.Security.dll lib/Tamir.SharpSSH.dll

#Warning: This is an automatically generated file, do not edit!
if ENABLE_DEBUG_X86
SUBDIRS = MCloud samples
endif
if ENABLE_RELEASE_X86
SUBDIRS = MCloud samples
endif
83 changes: 83 additions & 0 deletions autogen.sh
@@ -0,0 +1,83 @@
#! /bin/sh

PROJECT=MCloud
FILE=
CONFIGURE=configure.ac

: ${AUTOCONF=autoconf}
: ${AUTOHEADER=autoheader}
: ${AUTOMAKE=automake}
: ${LIBTOOLIZE=libtoolize}
: ${ACLOCAL=aclocal}
: ${LIBTOOL=libtool}

srcdir=`dirname $0`
test -z "$srcdir" && srcdir=.

ORIGDIR=`pwd`
cd $srcdir
TEST_TYPE=-f
aclocalinclude="-I . $ACLOCAL_FLAGS"

DIE=0

($AUTOCONF --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "You must have autoconf installed to compile $PROJECT."
echo "Download the appropriate package for your distribution,"
echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
DIE=1
}

($AUTOMAKE --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "You must have automake installed to compile $PROJECT."
echo "Get ftp://sourceware.cygnus.com/pub/automake/automake-1.4.tar.gz"
echo "(or a newer version if it is available)"
DIE=1
}

(grep "^AM_PROG_LIBTOOL" $CONFIGURE >/dev/null) && {
($LIBTOOL --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "**Error**: You must have \`libtool' installed to compile $PROJECT."
echo "Get ftp://ftp.gnu.org/pub/gnu/libtool-1.2d.tar.gz"
echo "(or a newer version if it is available)"
DIE=1
}
}

if test "$DIE" -eq 1; then
exit 1
fi

#test $TEST_TYPE $FILE || {
# echo "You must run this script in the top-level $PROJECT directory"
# exit 1
#}

if test -z "$*"; then
echo "I am going to run ./configure with no arguments - if you wish "
echo "to pass any to it, please specify them on the $0 command line."
fi

case $CC in
*xlc | *xlc\ * | *lcc | *lcc\ *) am_opt=--include-deps;;
esac

(grep "^AM_PROG_LIBTOOL" $CONFIGURE >/dev/null) && {
echo "Running $LIBTOOLIZE ..."
$LIBTOOLIZE --force --copy
}

echo "Running $ACLOCAL $aclocalinclude ..."
$ACLOCAL $aclocalinclude

echo "Running $AUTOMAKE --gnu $am_opt ..."
$AUTOMAKE --add-missing --gnu $am_opt

echo "Running $AUTOCONF ..."
$AUTOCONF

echo Running $srcdir/configure $conf_flags "$@" ...
$srcdir/configure --enable-maintainer-mode $conf_flags "$@" \
62 changes: 62 additions & 0 deletions configure.ac
@@ -0,0 +1,62 @@
dnl Warning: This is an automatically generated file, do not edit!
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ([2.54])
AC_INIT([MCloud], [0.1])
AM_INIT_AUTOMAKE([foreign])
AM_MAINTAINER_MODE

dnl pkg-config
AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
if test "x$PKG_CONFIG" = "xno"; then
AC_MSG_ERROR([You need to install pkg-config])
fi

SHAMROCK_EXPAND_LIBDIR
SHAMROCK_EXPAND_BINDIR
SHAMROCK_EXPAND_DATADIR

AC_PROG_INSTALL

AC_PATH_PROG(GMCS, gmcs, no)
if test "x$GMCS" = "xno"; then
AC_MSG_ERROR([gmcs Not found])
fi


AC_ARG_ENABLE(debug_x86,
AC_HELP_STRING([--enable-debug_x86],
[Use 'DEBUG_X86' Configuration [default=YES]]),
enable_debug_x86=yes, enable_debug_x86=no)
AM_CONDITIONAL(ENABLE_DEBUG_X86, test x$enable_debug_x86 = xyes)
if test "x$enable_debug_x86" = "xyes" ; then
CONFIG_REQUESTED="yes"
fi
AC_ARG_ENABLE(release_x86,
AC_HELP_STRING([--enable-release_x86],
[Use 'RELEASE_X86' Configuration [default=NO]]),
enable_release_x86=yes, enable_release_x86=no)
AM_CONDITIONAL(ENABLE_RELEASE_X86, test x$enable_release_x86 = xyes)
if test "x$enable_release_x86" = "xyes" ; then
CONFIG_REQUESTED="yes"
fi
if test -z "$CONFIG_REQUESTED" ; then
AM_CONDITIONAL(ENABLE_DEBUG_X86, true)
enable_debug_x86=yes
fi


dnl package checks, common for all configs

dnl package checks, per config


AC_CONFIG_FILES([
MCloud/mcloud.pc
MCloud/Makefile
samples/samples
samples/Makefile
Makefile
])

AC_OUTPUT
50 changes: 50 additions & 0 deletions expansions.m4
@@ -0,0 +1,50 @@
AC_DEFUN([SHAMROCK_EXPAND_LIBDIR],
[
expanded_libdir=`(
case $prefix in
NONE) prefix=$ac_default_prefix ;;
*) ;;
esac
case $exec_prefix in
NONE) exec_prefix=$prefix ;;
*) ;;
esac
eval echo $libdir
)`
AC_SUBST(expanded_libdir)
])

AC_DEFUN([SHAMROCK_EXPAND_BINDIR],
[
expanded_bindir=`(
case $prefix in
NONE) prefix=$ac_default_prefix ;;
*) ;;
esac
case $exec_prefix in
NONE) exec_prefix=$prefix ;;
*) ;;
esac
eval echo $bindir
)`
AC_SUBST(expanded_bindir)
])

AC_DEFUN([SHAMROCK_EXPAND_DATADIR],
[
case $prefix in
NONE) prefix=$ac_default_prefix ;;
*) ;;
esac
case $exec_prefix in
NONE) exec_prefix=$prefix ;;
*) ;;
esac
expanded_datadir=`(eval echo $datadir)`
expanded_datadir=`(eval echo $expanded_datadir)`
AC_SUBST(expanded_datadir)
])

0 comments on commit 359bb67

Please sign in to comment.