C++ C Makefile
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


The C++ Middleware Writer (CMW) is an on-line code generator.
The CMW and the software found in this repository provide
support for messaging and serialization.

The software is under the BSD 2-clause license.  One of the
files, quicklz.h, is from another developer and should only
be used in conjunction with the CMW.

There are two makefiles here: one for Gcc/Clang and one for
Visual Studio.  The Gcc version is called "makefile" and the
Visual Studio version is "makefile.vs".  If you're using a
Microsoft compiler, you may want to rename makefile.vs to
makefile.  If you're using a big-endian machine, add
-DCMW_ENDIAN_BIG to the CXXFLAGS in the makefile.

Four programs are built.  Two of the programs are example
programs.  The other two programs are the middle and front
tiers of the C++ Middleware Writer.  The middle tier is called
the cmwA, which is short for CMW Ambassador.  The front tier
is called "genz" and is a command line interface.  On Windows,
the middle tier isn't built.  The middle tier is still needed
for Windows users so it needs to be running on a BSD/Linux box
or VM.

A 2017 or newer C++ compiler is required to build the middle
and front tiers of the CMW.  That doesn't mean your project
has to use 2017 C++.  A 2011 or newer C++ compiler is able to
process output from the CMW.

An account is needed to use the CMW.  Before running the
middle tier, you have to get an account and modify your
cmwA.cfg file to include your account number(s) and
password(s).  To get an account send an email to
support@webEbenezer.net and include a password between 10
and 50 characters long for your account.  We'll reply by
giving you an account number.

Running the cmwA (after installing):

cmwA cmwA.cfg

After starting the cmwA, run genz like this:

genz 14 /home/brian/onwards/example/example.mdl

or on Windows:

genz.exe 14 /Users/brian/onwards/example/example.mdl

14 is an account number.  Substitute your account number there.

The path for a Middle file (.mdl) is next.  Zero or more header
files are listed in a Middle file to specify a request.  There's
more info on Middle files here --

Once you have built the software, I suggest copying example.mdl
to one of your directories and modifying the copy according to
your needs.

The middle tier has to be running for the front tier to work.
If genz fails with "No reply received.  Is the cmwA running?"
make sure the middle tier is running.

Another possible problem could be due to "breaking changes"
between the back and middle tiers.  We may have changed the
protocol between these tiers and now your version of the
middle tier no longer works.  The thing to do in this case
is to check our website for an announcement/email that you
may have missed.  Probably you will have to clone/download
the new version of the repo and then rebuild and reinstall
in order to fix the problem.

If you have only moved/renamed header files listed in your
.mdl files, you will need to touch those files (update
timestamps) so the changes will be "noticed" by the cmwA.

Thank you for using the software.