Commit graph

98 commits

Author SHA1 Message Date
Anonymous Maarten
5062329be0
Remove MSBuild projects (#310)
CMake supports MSVC.
CMake can also drive a DJGPP toolchain, but its makefile is simple enough.
2026-07-21 18:47:42 -07:00
Peter Johnson
0b5fde7350 Add cmake files to distribution. 2014-08-10 11:39:15 -07:00
Peter Johnson
822bdfb4a8 Add vc12 files to distribution. 2014-08-10 00:46:58 -07:00
Peter Johnson
f7f350151f dist-hook: Copy YASM-VERSION.h to Mkfiles/vc12. 2014-08-10 00:43:17 -07:00
Peter Johnson
e437ef4292 Add Mkfiles/vc10/out_copy_rename.bat to distribution. 2011-10-31 00:29:42 -07:00
Peter Johnson
c0f152742f Copy YASM-VERSION.h to Mkfiles for distribution. 2011-10-31 00:29:42 -07:00
Peter Johnson
0e3fa2d6d1 Makefile.am: Clean YASM-VERSION.h. 2011-09-03 21:27:21 -07:00
Peter Johnson
0ed2cc4451 Generate version number information from git history.
Due to the svn import structure, a special case is currently implemented
to look for the 1.1.0 branchpoint instead of the most recent tag on the
master branch.  This will be removed after the first release is tagged
on the master branch in git.

Specific details:

autogen.sh: More aggressively clean autoconf cache.
This is needed to ensure the version number is actually regenerated.

Don't generate PACKAGE_PATCHLEVEL or PACKAGE_BUILD variables.  The
genversion program now parses PACKAGE_VERSION directly.

For Mkfiles builds, YASM-VERSION.h is generated and included by the custom
config.h.  This avoids the need to edit config.h for versioning.
2011-08-27 09:25:30 -07:00
Peter Johnson
94ab1135a3 Remove $Id$ and RCSID() usage.
These are useless now that we're using git.
2011-08-19 10:43:16 -07:00
Peter Johnson
47b7b364c7 Makefile.am: Update for [2297] changes.
svn path=/trunk/yasm/; revision=2299
2010-03-04 05:08:00 +00:00
Peter Johnson
03de198f09 Add vc10 and vsyasm build files to EXTRA_DIST.
svn path=/trunk/yasm/; revision=2290
2010-02-17 06:33:26 +00:00
Peter Johnson
c30e4abfd3 Update autoconf/automake scripts.
Also remove ltmain.sh as we no longer use libtool.

Patch submitted by: Roumen Petrov <bugtrack@roumenpetrov.info>

svn path=/trunk/yasm/; revision=2269
2010-01-07 07:00:05 +00:00
Peter Johnson
73276e64a8 Remove vc7 and vc8 build files, as they're no longer being maintained.
There's a Python script (vc98_swap.py) in the Mkfiles/vc9 directory for
those who want to build with vc8.

svn path=/trunk/yasm/; revision=2184
2009-03-24 05:04:15 +00:00
Peter Johnson
ccac72fdb3 Remove renamed tasm.vcproj (as of [2175] it is ytasm.vcproj).
Add to distribution files.

svn path=/trunk/yasm/; revision=2177
2009-03-04 07:41:59 +00:00
Peter Johnson
dca3ebc625 Update Makefile.am for vc98_swap.py.
svn path=/trunk/yasm/; revision=2152
2008-10-09 04:37:12 +00:00
Peter Johnson
33746edaa4 Minor update of VC9 compile readme.
Also add conversion script from vc9 (2008) build files to vc8 (2005) build
files.

Contributed by: Brian Gladman <brg@gladman.plus.com>

svn path=/trunk/yasm/; revision=2047
2008-04-01 04:25:15 +00:00
Peter Johnson
211072d520 Include VC9 build files in the distfile.
Noticed by: Brian Gladman <brg@gladman.plus.com>

svn path=/trunk/yasm/; revision=2046
2008-03-28 02:42:41 +00:00
Peter Johnson
f150e45913 Change x86 instruction tables to be automatically generated.
This combines the C and perfect hash tables into a single source file,
and allows for easier future changes to the source-level structures.

The Python-built files are included in the distribution so that Python
is not added as a dependency.

The generated code has been verified equal against the old tables,
excepting a number of bugfixes.

Most of the bugs fixed are in the CPU field, plus a few GAS suffix fixes.

svn path=/trunk/yasm/; revision=1937
2007-09-10 06:59:47 +00:00
Peter Johnson
303c2867de Bring Mkfiles up to date with [1929].
svn path=/trunk/yasm/; revision=1930
2007-09-08 00:04:08 +00:00
Peter Johnson
4ca492b3d9 Don't distribute re2c-built files or configure-built stdint.h.
svn path=/trunk/yasm/; revision=1783
2007-02-22 03:40:31 +00:00
Peter Johnson
8aa68a2ee2 Fix build (hopefully) on Win64 by using uintptr_t more widely; Win64 is a
LLP64 platform so it's unsafe to cast pointers to unsigned long.

Reported by: Chris Tophe <cohika@gmail.com>

svn path=/trunk/yasm/; revision=1774
2007-02-18 20:42:55 +00:00
Peter Johnson
a8ef216fc0 GAS parser: convert to recursive descent.
Remove all Bison supporting struts as we no longer need Bison.

svn path=/trunk/yasm/; revision=1724
2006-12-30 03:19:24 +00:00
Peter Johnson
42af0d898f Remove remaining references to nasm-bison.c/h.
Noticed by: Sean Darcy <seandarcy2@gmail.com>
Patch by: Charles Bailey <charles@hashpling.org>

Fix automake 1.10 error.
Noticed/fix by: Sean Darcy <seandarcy2@gmail.com>

svn path=/trunk/yasm/; revision=1719
2006-12-24 21:18:01 +00:00
Peter Johnson
92f1ccd7d5 Change genmodule to parse through the Makefile (or Makefile.am) looking for YASM_MODULES,
rather than simply taking a list of modules on the command line.  This allows significant
improvement of the behavior when used with Visual Studio, as the "old" way of doing this
with Visual Studio build files was to scan through the .c files; this brought up things
that were actually disabled in the build.

Also incorporate a patch by Charles Bailey to make the VC8 build less noisy, and allow use
of Win32 Bison if it's installed.  Instructions updated as well.

svn path=/trunk/yasm/; revision=1642
2006-10-05 06:22:25 +00:00
Peter Johnson
e4460d5334 * python_test.sh: Use PYTHON variable to find python executable.
* python-yasm/tests/Makefile.inc: Pass PYTHON setting down through
TESTS_ENVIRONMENT.
* Makefile.am: Initialize TESTS_ENVIRONMENT to empty.

svn path=/trunk/yasm/; revision=1501
2006-04-17 03:21:41 +00:00
Peter Johnson
28dc9d662c * Mkfiles: Bring up to date with main tree changes (genstring, genversion).
svn path=/trunk/yasm/; revision=1466
2006-04-05 07:53:55 +00:00
Peter Johnson
a9b1395d09 * COPYING: Update verbiage, add list of contributors and copyright notice.
* genstring.c: Generate string array from source file.
* Makefile.am: Build genstring.
* Makefile.inc: Use genstring to create license.c from COPYING.
* yasm.c: Include license.c and use it for new --license option.  Shorten
--version option to just displaying version, compile date, and very short
copyright message.

svn path=/trunk/yasm/; revision=1463
2006-04-05 05:39:23 +00:00
Peter Johnson
02b8ac4eb0 * Makefile.am: Unbreak build for when Python bindings aren't being built;
also more cleanly hook into all target.

svn path=/trunk/yasm/; revision=1459
2006-04-05 02:05:19 +00:00
Peter Johnson
a5d91fba6a Hook Python module into the build (even though it's pretty incomplete),
enabled with --enable-python (defaults to auto-detect).

Thanks to some magic in python-yasm/Makefile.inc and setup.py, this actually
plays nicely with automake distcheck.

* m4/pythonhead.m4: Script to find Python.h.
* m4/Makefile.inc: Include it in distfiles.
* configure.ac: Add --enable-python option and Python and Pyrex detection.
* tools/Makefile.inc: Pull tools/python-yasm/Makefile.inc into build.
* python-yasm/Makefile.inc: Add automake build magic for extension.
* setup.py: Likewise.

svn path=/trunk/yasm/; revision=1456
2006-04-04 06:07:32 +00:00
Peter Johnson
90a38d71b0 Rewrite x86 identifier recognition to use a minimal perfect hash table
instead of re2c-generated code.  This gives identifier recognition a
significant speedup and also drastically shortens compilation time of yasm
itself.  This rewrite encouraged combining instruction and prefix
recognition into one function and register and target modifier
recognition into a second function (rather than having 5 or so separate
functions).

Also created a state in the NASM parser (as was done in the GAS parser),
so instructions/prefixes are only looked for until an instruction is
recognized.  This avoids search time in the instructions hash for operands.

The tool used to generate the new identifier recognition is called GAP.
Someday we might extend this to generate more code than just the perfect
hash lookup.

* tools/gap: New tool to Generate Architecture Parser (aka perfect hashes).
* phash.c, phash.h: Helper functions used by GAP-generated code.

* x86id.re: Delete.  Split into..
* x86parse.gap: Contains all identifier recognition portions.
* x86id.c: Contains instruction operand tables and code and higher-level
entry points into x86parse.gap perfect hash recognizers.  Chose to flow
history of x86id.re into this file.

* arch.h: Combine instruction/prefix entry points and register/target
modifier entry points.
* lc3barch.c, lc3bid.re, lc3barch.h: Update to match.
* x86arch.c, x86arch.h: Update to match.

* Makefile.am, various Makefile.inc: Update.
* POTFILES.in: Update due to numerous file changes (not just this commit).
* Mkfiles: Update.  VC build files untested at the moment.

svn path=/trunk/yasm/; revision=1395
2006-03-04 22:09:26 +00:00
Peter Johnson
ca59fe1770 * Makefile.am: Unbreak distcheck due to yasm32.rules/yasm64.rules ->
yasm.rules combination in Mkfiles/vc8.

svn path=/trunk/yasm/; revision=1336
2006-01-18 01:40:33 +00:00
Peter Johnson
d86c4f42aa Add VC8 build files.
Contributed by: Brian Gladman <brg@gladman.plus.com>

Also added a couple VC7 build files that were in the tree but missing from
EXTRA_DIST (and thus not included in the distribution).

svn path=/trunk/yasm/; revision=1326
2006-01-08 22:56:06 +00:00
Peter Johnson
13d9591590 * Makefile.am: Actually include Mkfiles/dj/_stdint.h in the distribution.
svn path=/trunk/yasm/; revision=1284
2005-10-15 19:40:15 +00:00
Peter Johnson
f928be04b2 * hamt.c: Use uintptr_t to correctly cast to integer from pointer. On some
platforms (notably Win64), unsigned long is not big enough to hold a
pointer.
* Makefile.am, configure.ac: Use ax_create_stdint_h to get us uintptr_t.
* ax_create_stdint_h.m4: Implementation of ax_create_stdint_h autoconf
macro from http://ac-archive.sourceforge.net/guidod/ax_create_stdint_h.html

svn path=/trunk/yasm/; revision=1223
2005-09-05 20:53:07 +00:00
Peter Johnson
2b5f4b7704 Change how man pages are built (and where they are built to). Building man
pages should now be more consistent across systems.

* arch/Makefile.inc: Build yasm_arch.7 at top level, and in dist_man_MANS
instead of man_MANS.  Include build rule for building using XMLTO if XMLTO
is available.
* yasm/Makefile.inc: Likewise (for yasm.1).
* Makefile.am: Change man_MANS to dist_man_MANS.  Remove general rules for
.xml.1 and .xml.7.  Add dist_man_MANS to MAINTAINERCLEANFILES.  Remove
man_MANS from BUILT_SOURCES, DISTCLEANFILES, and EXTRA_DIST.


svn path=/trunk/yasm/; revision=1189
2005-01-13 07:14:48 +00:00
Peter Johnson
882738b234 Greatly simplify build system by removing libtool and integrating formerly
dynamically loaded modules into the now-static libyasm.  I now anticipate
that there would be very few users of the dynamic loading features, and it
yielded a lot of instability and build headaches for very little benefit.
The new build should now be much more cross-platform and faster (there was
a lot of overhead in finding and loading modules).

 * libtool.m4, ltdl.m4: Delete.
 * m4/Makefile.am: Rename to m4/Makefile.inc and remove references to above.
   Change to use subdirectory (flat) build rather than recursive build.
 * Makefile.am: Include m4/Makefile.inc rather than having it in SUBDIRS.
 * libltdl: Delete.

 * frontends/yasm/yasm-module.c: Delete.
 * basename.c, dirname.c: Delete (no longer needed by yasm-module.c).
 * genmodule.c, module.in: Generator and template for new module.c included
   in libyasm that replaces the old yasm-module.c (module.in is a modified
   rename of yasm-module.c).
 * module.h: Modified rename of old yasm-module.h.
 * libyasm.h: Include libyasm/module.h.
 * libyasm/Makefile.inc: Build generator and include module.c in libyasm.
 * yasm.c: Use new libyasm module interface.

 * (many) Makefile.inc: Remove libtool libraries, build all modules into
   libyasm library.

 * configure.ac: Remove libtool/libltdl references.

 * Mkfiles/vc/yasm-module.c: Remove.  Still need to fix some of the other
   Mkfiles/ build files for these changes.


svn path=/trunk/yasm/; revision=1183
2004-12-01 07:49:18 +00:00
Peter Johnson
55d8a8f874 Remove Check suite; hand-write the two tests that use it. While we're
here, remove the bitrotted tests memexpr_test and bytecode_test.

* check: Deleted.
* Makefile.am: Unhook Check suite from build.
* configure.ac: Remove tests for things needed only for Check suite.

* memexpr_test.c: Delete.
* bytecode_test.c: Delete.
* libyasm/tests/Makefile.inc: Delete commented-out references to above.

* bitvect_test.c: Rewrite to not use Check suite.
* floatnum_test.c: Likewise.
* libyasm/tests/Makefile.inc: Don't reference Check suite.


svn path=/trunk/yasm/; revision=1178
2004-11-15 00:19:04 +00:00
Peter Johnson
38846c5556 * ins.h, scanner.h, dfa.h, code.c, re.h, parse.h, token.h, substr.h:
Remove use of "inline".  This could cause breakage on non-gcc systems (as
these files do not use config.h because of cross-build reasons).

* yasm.dep, yasm.mak, yasm.dsp, yasm.dsw: Remove support for VC6 builds.
* libyasm.dsp, libyasm.mak, libyasm.dep: Likewise.
* modules.dsp, modules.mak, modules.dep: Likewise.

* yasm.suo: Remove unneeded user options file.

* vc: Update svn:ignore property to reflect removal of VC6 builds and user
options file.

* genmacro.vcproj: Generate genmacro tool.
* genmacro/run.bat: Use genmacro to generate nasm-macros.c.
* modules.vcproj: Point to the new location for nasm-macros.c.

* re2c.vcproj: Generate re2c tool.
* re2c/run.bat: Use re2c to generate re2c-generated .c files.

* yasm.sln: Utilize genmacro and re2c.


svn path=/trunk/yasm/; revision=1144
2004-09-12 07:57:47 +00:00
Peter Johnson
f916f1c79d * arch/lc3b/README, arch/x86/README: Remove (replaced by man page).
* yasm_arch.xml, yasm_arch.7: Add new man page describing architectures.

* yasm.xml, yasm.1: Reference yasm_arch(7).

* Makefile.am: Add build rules for .7 man pages.

* modules/arch/Makefile.inc: Build yasm_arch.7.

svn path=/trunk/yasm/; revision=1140
2004-09-10 22:58:04 +00:00
Peter Johnson
83ad81cf4f * Makefile.am: Unbreak build (broken due to new man page generation).
svn path=/trunk/yasm/; revision=1139
2004-09-07 16:16:01 +00:00
Peter Johnson
72bce5ac1d * configure.ac: Remove check for groff, add check for xmlto.
* Makefile: Add support for building man pages from DocBook XML refentry's
using xmlto.

* frontends/yasm/yasm.xml: New.  Source XML file for yasm(1) man page.
* frontends/yasm/yasm.1: Generated yasm(1) man page.  We may want to remove
this at some point, but it would have impact on those keeping up with HEAD.

* frontends/yasm/Makefile.inc: Add new yasm(1) man page to distribution and
install.

* HACKING: Update required tools list.  Rename "CVS" to "Subversion".
Remove "Generating ChangeLogs" section, as with Subversion this is not
necessary.

svn path=/trunk/yasm/; revision=1138
2004-09-07 07:39:26 +00:00
Peter Johnson
1a86c34026 * On most files: re-enable $IdPath$ as $Id$, and enable Id keyword expansion.
svn path=/trunk/yasm/; revision=1137
2004-09-04 01:24:57 +00:00
Peter Johnson
feef185e96 Makefile.am: Include mkinstalldirs in the distribution.
Bugzilla Bug 38
Reported by: Jeff Lawson <jlawson-yasm@bovine.net>

svn path=/trunk/yasm/; revision=1132
2004-09-01 04:55:21 +00:00
Peter Johnson
def825542c Convert test_hd.pl to test_hd.c, to remove one Perl dependency.
svn path=/trunk/yasm/; revision=1102
2004-03-14 22:25:18 +00:00
Peter Johnson
a90b9d8906 Actually include (newly added) basename.c and dirname.c in the distribution.
svn path=/trunk/yasm/; revision=1099
2004-02-08 02:54:25 +00:00
Peter Johnson
079f70bf4f Add VC++ 7.1 build files to the distribution.
svn path=/trunk/yasm/; revision=1091
2003-12-26 08:01:34 +00:00
Peter Johnson
9d784e9d65 Merge updates for 0.3.0 into the trunk (except for version bump).
svn path=/trunk/yasm/; revision=1055
2003-09-05 04:20:46 +00:00
Peter Johnson
b33a50702e Clarify licensing.
svn path=/trunk/yasm/; revision=998
2003-07-11 04:35:42 +00:00
Peter Johnson
823fb1b781 Reformat multi-file lists to use many += lines instead of using \
(line-continued) lines.  Format-only change, no functional change.

svn path=/trunk/yasm/; revision=959
2003-05-31 22:23:08 +00:00
Peter Johnson
cfc6bf0ded Clean up and simplify libyasm.h options and symbol visibility:
- Move config.h and util.h from libyasm (and installed libyasm) to top level.
- Move yasm_* functions from util.h to coretype.h.
- Remove a number of autoconf-related YASM_*_INTERNAL options from libyasm.h.
- Rename YASM_INTERNAL to YASM_LIB_INTERNAL; it now actually means what the
  comment describes: enables definitions that violate the yasm_* namespace.

While we're at it, no longer define YASM_LIB_INTERNAL from yasm frontend, so
it's closer to what a real typical libyasm-using application would look like.

svn path=/trunk/yasm/; revision=944
2003-05-05 03:42:12 +00:00