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
