I have now commited new build system to github repo.  Beside content
of repo you also need working corepop (not contained in the repo).
Short step by step instruction for 64-bit PC Linux:

0. Go to directory where you will build poplog
1. Fetch sources:

  git clone --depth=1 https://github.com/hebisch/poplog .

2. Make directory for corepop:

  mkdir -p target/pop

3. Fetch corepop:

  wget https://www.math.uni.wroc.pl/~hebisch/poplog/corepop.amd64

4. Turn on executable bits on fetched corepop:

  chmod 755 corepop.amd64

5. Move corepop to proper place:

  mv corepop.amd64 target/pop/corepop

6. Run configure:

  ./configure

7. Make new corepop:

  make stamp_new_corepop

8. Replace old corepop by new:

  mv target/pop/new_corepop target/pop/corepop

9. Build:

  make

After that at top of build directory there will be a script called
poplog and you can do:

./poplog pop11

etc, to run poplog commands.  If desired you can move poplog script
to other place (like /usr/local/bin).  poplog script contains paths
to build directory, so it will find parts of poplog even when
invoked from other place.  You can also move pop and target subtrees
to other places, but this requires editing paths embedded in poplog
script.  In the future we will probably add install target to the
makefile which will put Poplog files to final place and produce
appropriate commands.

Remark: Of course commands above could be gathered into a
"download and build" script.  I am not doing this now because
you may wish to change step above.

Some deeper explanations:

- configure script detects architecture, so given working corepop
  this should build also on arm (32-bit) and i386
- configure script detects if we need -no-pie option to C
  compiler, this causes compilcation to the build process
- corepop.amd64 is intended to be usable on many different
  machines.  It was build on moderately old machine (on
  which -no-pie fails) with option which in principle
  allows it to run on very old machines.  OTOH it contains
  workaround for 5.8 kernel and does not link to ncurses,
  so it avoids all known to me problems on new machines
- configure script detects if we can link to Xt or Motif,
  if there is not Xt on machine, then it will configure link
  without X support, if there is Xt, but not Motif it will
  link configure with Xt, if there is Motif it will configure
  link with Motif
- Makefile and poplog script are created by configure using
  templates (Makefile.in and scripts/poplog.in respectively) and
  replacing some strings
- I have separated sources from binaries: all binaries are
  created in target subdirectory.  If you depend on traditional
  layout of Poplog you may move parts of installation back
  to old placed and adjust paths in the poplog script.  Or
  you can adjust to new layout


I would in particular appreciate info if corepop.amd64 works
on your machine.  Also, I am interested of your opinion about
new directory layout.  Currently I use "target" as name of
directory for binaries, which is a bit silly.  We probably
should use someting like target/x86_64 or x86_64, that
is encoding architecture name (with architecture specific
name we can have multiple architectures in the same tree).
This makefile is experimental, it works for me on few
machines, but I would appreciate info if it works on
your machine.  Let me add that this build system assumes
resonably standard system.  It will surely fail on
ancient Unix variants with buggy basic utilities.
OTOH it has resonable chance of working on say FreeBSD
(possibly after some minor tweaks).

One more comment: I skipped old scripts from 'pop/com'
subdirectory like 'mkeliza' or 'popenv.sh'.  Some
of them may work with this system, some probably require
changes.  However, normal use should be possible just
via 'poplog' sript.  I would appreciate comments on
what features of old system that changed in this one
you consider important.

Let me add that I consider changes to dirctory layout
and ommision of old scripts as a proposal and voice
in discussion.  Old layout and script could be easily
restored, but the question is if benefits of old way
are greater then disadvantages.

-- 
                              Waldek Hebisch

Reply via email to