Rudolf `divVerent` Polzer - Technical support and assistance
Matthias `matthiaskrgr` Krüger - Miscellaneous assistance
Samual `Samual` Lenks - Preprocessor assistance
+ Igor `ignatenkobrian` Gnatenko - Fedora packages
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.
--- /dev/null
+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.
--- /dev/null
+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 <i.gnatenko.brain@gmail.com> - 0.2.9-1
+- Initial release
--- /dev/null
+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 <i.gnatenko.brain@gmail.com> - 0.2.9-1
+- Initial release
# 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;
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;
--- /dev/null
+hello world 2