diff --git a/.gitignore b/.gitignore
index 8ac58825f4..f83f744888 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,17 @@
-build
+target/
+Servers/
+.metadata/
+.recommenders/
+.settings/
+RemoteSystemsTempFiles/
+_ajdump/
+.project
+.classpath
+.springBeans
+.externalToolBuilders
+.svn/
+dependency-reduced-pom.xml
+build/
build-d64
build.eclipse
build.number
diff --git a/CHANGES.md b/CHANGES.md
index dfd6fef745..8dda50a672 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -32,6 +32,7 @@ Features
* [#573](https://github.com/java-native-access/jna/pull/573): Added `EnumProcessModules`, `GetModuleInformation`, and `GetProcessImageFileName` to `com.sun.jna.platform.win32.Psapi` and added `ExtractIconEx` to `com.sun.jna.platform.win32.Shell32` - [@mlfreeman2](https://github.com/mlfreeman2).
* [#574](https://github.com/java-native-access/jna/pull/574): Using static final un-modifiable List of field names for structure(s) [@lgoldstein](https://github.com/lgoldstein)
* [#577](https://github.com/java-native-access/jna/pull/577): Apply generic definitions wherever applicable [@lgoldstein](https://github.com/lgoldstein)
+* [#582](https://github.com/java-native-access/jna/pull/582): Mavenize the build process - Phase 1: building the native code via Maven [@lgoldstein](https://github.com/lgoldstein)
Bug Fixes
---------
diff --git a/native/build.xml b/native/build.xml
new file mode 100644
index 0000000000..2187b8abd1
--- /dev/null
+++ b/native/build.xml
@@ -0,0 +1,373 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/native/pom.xml b/native/pom.xml
new file mode 100644
index 0000000000..72ad699b2b
--- /dev/null
+++ b/native/pom.xml
@@ -0,0 +1,54 @@
+
+
+
+ 4.0.0
+ native
+ pom
+ net.java.dev.jna:native
+
+
+ net.java.dev.jna
+ parent
+ 4.3.0-SNAPHSOT
+ ../parent
+
+
+
+
+
+ maven-antrun-plugin
+
+
+ compile-native-library
+ package
+
+ run
+
+
+
+
+
+
+
+
+
+
+
+
+
+ maven-install-plugin
+
+ true
+
+
+
+ maven-deploy-plugin
+
+ true
+
+
+
+
+
\ No newline at end of file
diff --git a/parent/build-base.xml b/parent/build-base.xml
new file mode 100644
index 0000000000..0fd778786d
--- /dev/null
+++ b/parent/build-base.xml
@@ -0,0 +1,103 @@
+
+
+
+ Holds common imported definitions for ANT build.xml file(s)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/parent/build-compile.xml b/parent/build-compile.xml
new file mode 100644
index 0000000000..351e504a6a
--- /dev/null
+++ b/parent/build-compile.xml
@@ -0,0 +1,140 @@
+
+
+
+ Holds common imported definitions for ANT build.xml file(s)
+ that build/generate artifacts
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/parent/pom.xml b/parent/pom.xml
new file mode 100644
index 0000000000..726180f75b
--- /dev/null
+++ b/parent/pom.xml
@@ -0,0 +1,462 @@
+
+
+ 4.0.0
+ net.java.dev.jna
+ parent
+ 4.3.0-SNAPHSOT
+ pom
+ net.java.dev.jna:parent
+ https://github.com/java-native-access/jna
+
+
+ UTF-8
+
+
+
+ 1
+ 5
+ 0
+
+ ${jvm.major.version}.${jvm.minor.version}
+ ${javac.source}
+ ${javac.source}
+ ${javac.source}
+
+ ${javac.source}
+ ${javac.target}
+ ${javac.target}
+ ${javac.target}
+
+ 3.2
+ 2.19
+ 2
+ 4
+ 5
+ 2.0
+ ${groovy.major.version}.${groovy.minor.version}.${groovy.release.version}
+ 1.5
+
+ 1.9.6
+ 1.16
+ 1.0b3
+ 4.12
+
+
+
+ ${min.required.maven.version}
+
+
+
+
+
+ junit
+ junit
+ ${junit.version}
+ test
+
+
+ org.mockito
+ mockito-all
+ 1.10.19
+ test
+
+
+
+
+
+
+ LGPL, version 2.1
+ http://www.gnu.org/licenses/licenses.html
+ repo
+
+
+ ASL, version 2
+ http://www.apache.org/licenses/LICENSE-2.0.txt
+ repo
+
+
+
+
+ scm:git:https://github.com/java-native-access/jna
+ scm:git:ssh://git@github.com/java-native-access/jna.git
+ https://github.com/java-native-access/jna
+
+
+
+
+ twall
+ Timothy Wall
+
+ Owner
+
+
+
+
+
+ install
+
+
+
+
+
+ org.eclipse.m2e
+ lifecycle-mapping
+ 1.0.0
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+ [1.0,)
+
+ copy
+ copy-dependencies
+
+
+
+
+
+
+
+
+ org.codehaus.gmaven
+ gmaven-plugin
+ [1.0,)
+
+ compile
+ execute
+ testCompile
+
+
+
+
+
+
+
+
+
+
+
+
+ maven-compiler-plugin
+ 3.3
+
+
+ ${javac.target}
+ -g
+ -Xlint:-serial
+
+
+
+
+ maven-jar-plugin
+ 2.6
+
+
+
+ true
+ true
+
+ true
+ true
+
+
+
+ ${java.version}
+ ${java.vm.version}
+ ${user.name}
+
+ ${project.buildtimestamp}
+ ${maven.version}
+
+
+
+
+
+
+ maven-install-plugin
+ 2.5.2
+
+
+
+ maven-dependency-plugin
+ 2.10
+
+
+ install
+ install
+
+ sources
+
+
+ ${settings.localRepository}/net/java/dev/jna/dependency-maven-plugin-markers
+
+
+
+
+
+
+ maven-clean-plugin
+ 2.6.1
+
+
+
+ maven-deploy-plugin
+ 2.8.2
+
+
+
+ maven-resources-plugin
+ 2.7
+
+
+ pdf
+ swf
+ ico
+
+
+
+
+
+ maven-antrun-plugin
+ 1.8
+
+
+ org.apache.ant
+ ant
+ ${ant.version}
+
+
+ org.apache.ant
+ ant-launcher
+ ${ant.version}
+
+
+ org.apache.ant
+ ant-junit4
+ ${ant.version}
+
+
+
+ ant-contrib
+ ant-contrib
+ ${ant-contrib.version}
+
+
+ junit
+ junit
+ ${junit.version}
+
+
+ com.sun
+ tools
+ ${javac.source}
+ system
+ ${java.home}/../lib/tools.jar
+
+
+
+
+
+ maven-javadoc-plugin
+ 2.10.2
+
+
+ http://docs.oracle.com/javase/7/docs/api
+ http://junit.sourceforge.net/javadoc
+ http://www.jfree.org/jcommon/api
+ http://www.jfree.org/jfreechart/api/javadoc
+ http://docs.jboss.org/hibernate/core/3.5/api
+ http://www.jajakarta.org/ant/ant-1.6.1/docs/en/manual/api
+
+ true
+
+ -Xdoclint:none
+
+
+
+
+ jar
+
+
+
+
+
+
+
+
+
+ maven-enforcer-plugin
+ 1.4
+
+
+ enforce-versions
+
+ enforce
+
+
+
+
+
+
+ [${min.required.maven.version},)
+
+
+ [${javac.target},)
+
+
+
+
+
+
+
+ org.codehaus.gmaven
+ gmaven-plugin
+ ${gmaven.plugin.version}
+
+ ${groovy.compliance.level}
+
+
+
+ org.codehaus.gmaven.runtime
+ gmaven-runtime-${groovy.compliance.level}
+ ${gmaven.plugin.version}
+
+
+ org.codehaus.groovy
+ groovy-all
+
+
+ org.apache.ant
+ ant
+
+
+
+
+ org.codehaus.groovy
+ groovy-all
+ ${groovy.version}
+
+
+
+ org.apache.ant
+ ant
+ ${ant.version}
+
+
+ org.apache.ant
+ ant-launcher
+ ${ant.version}
+
+
+ org.apache.ant
+ ant-junit4
+ ${ant.version}
+
+
+ junit
+ junit
+ ${junit.version}
+
+
+
+
+
+ maven-source-plugin
+ 2.4
+
+
+ attach-sources
+ verify
+
+ jar-no-fork
+
+
+
+
+
+
+ maven-surefire-plugin
+ ${surefire.plugin.version}
+
+
+ **/*Test.java
+
+ alphabetical
+ 1
+ true
+
+ false
+ 1
+ ${excluded.tests.group}
+
+ ${project.build.directory}${file.separator}temp
+ true
+
+
+
+
+
+ junit
+ junit
+ ${junit.version}
+
+
+
+
+ org.apache.maven.surefire
+ surefire-junit47
+ ${surefire.plugin.version}
+
+
+
+
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+ 1.9.1
+
+
+ remove-previous-artifact
+ clean
+
+ remove-project-artifact
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+ maven-surefire-report-plugin
+ ${surefire.plugin.version}
+
+
+
+
+
+
+ fast
+
+ true
+ true
+
+
+
+
\ No newline at end of file