From 0291726c092b42ec9c5aae076ee4eaba26ee5a48 Mon Sep 17 00:00:00 2001 From: Dale Weiler Date: Sat, 27 Jul 2013 16:33:33 +0000 Subject: [PATCH] Fedora spec files (0.2.9 and 0.3.0) + INSTALL documentation, thanks Igor Gnatenko. --- AUTHORS | 1 + INSTALL | 3 +++ distro/fedora/INSTALL | 17 +++++++++++++ distro/fedora/gmqcc-0.2.9.spec | 46 ++++++++++++++++++++++++++++++++++ distro/fedora/gmqcc-0.3.0.spec | 46 ++++++++++++++++++++++++++++++++++ gmqcc.h | 4 +-- lexer.h | 10 ++++---- test | 1 + 8 files changed, 121 insertions(+), 7 deletions(-) create mode 100644 distro/fedora/INSTALL create mode 100644 distro/fedora/gmqcc-0.2.9.spec create mode 100644 distro/fedora/gmqcc-0.3.0.spec create mode 100644 test diff --git a/AUTHORS b/AUTHORS index 16255d2..1044d29 100644 --- a/AUTHORS +++ b/AUTHORS @@ -7,3 +7,4 @@ Thanks to: Rudolf `divVerent` Polzer - Technical support and assistance Matthias `matthiaskrgr` Krüger - Miscellaneous assistance Samual `Samual` Lenks - Preprocessor assistance + Igor `ignatenkobrian` Gnatenko - Fedora packages diff --git a/INSTALL b/INSTALL index a15f6bd..ffd45bd 100644 --- a/INSTALL +++ b/INSTALL @@ -57,3 +57,6 @@ Debian archives (git build) can be created invoking make in ./distro/deb + + Fedora spec files (release) can be found in ./distro/fedora, as well + as a README explaining how to build them. diff --git a/distro/fedora/INSTALL b/distro/fedora/INSTALL new file mode 100644 index 0000000..9d021ff --- /dev/null +++ b/distro/fedora/INSTALL @@ -0,0 +1,17 @@ +To use the spec files in this fedora directory you need the core +development tools for Fedora, building enviroment for the user, and +the directory structure for it. If you don't already have these, issue +the following commands. + +# yum groupinstall "Development Tools" +# yum install rpmdevtools +# rpmdev-setuptree + +Now, depending on the version of GMQCC you want, there are a serise of +maintained spec files in this directory. Chose the version you want and +issue the following to build the RPM. + +# rpmbuild -bs gmqc-[[version]].spec + +This will create an rpm file in the working directory, which you can +install with the rpm command line tool or mock. diff --git a/distro/fedora/gmqcc-0.2.9.spec b/distro/fedora/gmqcc-0.2.9.spec new file mode 100644 index 0000000..23e47f2 --- /dev/null +++ b/distro/fedora/gmqcc-0.2.9.spec @@ -0,0 +1,46 @@ +Name: gmqcc +Version: 0.2.9 +Release: 1%{?dist} +Summary: Improved Quake C Compiler +License: MIT +URL: http://graphitemaster.github.io/gmqcc/ +Source0: https://github.com/graphitemaster/%{name}/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz + +%description +Modern written-from-scratch compiler for the QuakeC language with +support for many common features found in other QC compilers. + +%package -n qcvm +Summary: Standalone QuakeC VM binary executor + +%description -n qcvm +Executor for QuakeC VM binary files created using a QC compiler such +as gmqcc or fteqcc. It provides a small set of builtin functions, and +by default executes the main function if there is one. Some options +useful for debugging are available as well. + +%prep +%setup -q + +%build +make %{?_smp_mflags} + +%install +%make_install PREFIX=%{_prefix} + +%check +make check + +%files +%doc LICENSE README AUTHORS CHANGES +%doc %{_mandir}/man1/gmqcc.1.gz +%{_bindir}/gmqcc + +%files -n qcvm +%doc LICENSE README AUTHORS CHANGES +%doc %{_mandir}/man1/qcvm.1.gz +%{_bindir}/qcvm + +%changelog +* Sat Jul 27 2013 Igor Gnatenko - 0.2.9-1 +- Initial release diff --git a/distro/fedora/gmqcc-0.3.0.spec b/distro/fedora/gmqcc-0.3.0.spec new file mode 100644 index 0000000..332321f --- /dev/null +++ b/distro/fedora/gmqcc-0.3.0.spec @@ -0,0 +1,46 @@ +Name: gmqcc +Version: 0.3.0 +Release: 1%{?dist} +Summary: Improved Quake C Compiler +License: MIT +URL: http://graphitemaster.github.io/gmqcc/ +Source0: https://github.com/graphitemaster/%{name}/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz + +%description +Modern written-from-scratch compiler for the QuakeC language with +support for many common features found in other QC compilers. + +%package -n qcvm +Summary: Standalone QuakeC VM binary executor + +%description -n qcvm +Executor for QuakeC VM binary files created using a QC compiler such +as gmqcc or fteqcc. It provides a small set of builtin functions, and +by default executes the main function if there is one. Some options +useful for debugging are available as well. + +%prep +%setup -q + +%build +make %{?_smp_mflags} + +%install +%make_install PREFIX=%{_prefix} + +%check +make check + +%files +%doc LICENSE README AUTHORS CHANGES +%doc %{_mandir}/man1/gmqcc.1.gz +%{_bindir}/gmqcc + +%files -n qcvm +%doc LICENSE README AUTHORS CHANGES +%doc %{_mandir}/man1/qcvm.1.gz +%{_bindir}/qcvm + +%changelog +* Sat Jul 27 2013 Igor Gnatenko - 0.2.9-1 +- Initial release diff --git a/gmqcc.h b/gmqcc.h index 202ae14..51ca188 100644 --- a/gmqcc.h +++ b/gmqcc.h @@ -81,8 +81,8 @@ GMQCC_IND_STRING(GMQCC_VERSION_PATCH) \ # ifdef true # undef true # endif /*! true */ -# define false (0) -# define true (1) +# define false (unsigned)(0) +# define true (unsigned)(1) # ifdef __STDC_VERSION__ # if __STDC_VERSION__ < 199901L && __GNUC__ < 3 typedef int bool; diff --git a/lexer.h b/lexer.h index f51d56e..0de0c8f 100644 --- a/lexer.h +++ b/lexer.h @@ -123,11 +123,11 @@ typedef struct lex_file_s { token tok; /* not a pointer anymore */ struct { - bool noops; - bool nodigraphs; /* used when lexing string constants */ - bool preprocessing; /* whitespace and EOLs become actual tokens */ - bool mergelines; /* backslash at the end of a line escapes the newline */ - } flags; + unsigned noops:1; + unsigned nodigraphs:1; /* used when lexing string constants */ + unsigned preprocessing:1; /* whitespace and EOLs become actual tokens */ + unsigned mergelines:1; /* backslash at the end of a line escapes the newline */ + } flags; /* sizeof == 1 */ int framevalue; frame_macro *frames; diff --git a/test b/test new file mode 100644 index 0000000..d0e1e95 --- /dev/null +++ b/test @@ -0,0 +1 @@ +hello world 2 -- 2.39.2