News:

Download Pelles C here: http://www.pellesc.se

Main Menu

Compiling using pomake

Started by rweidner, March 03, 2026, 05:27:26 PM

Previous topic - Next topic

rweidner

I noticed a post recently where someone was trying to compile using pomake. I didn't attempt to compile his examples. Others looked and determined the issue was user error.  But the whole thread got me thinking. Why compile from the command line?

I can explain why I use that approach. It may seem unusual to some, but it works for me. I let PellesC manage my *.ppj files, while I sometimes use a different IDE for coding. Project management and debugging stay in PellesC, and pomake handles the builds.

So, my questions are:
  • What workflow issue are you personally trying to solve if you're compiling from the command line?
  • What challenges does your "outside the box (IDE)" create, if any?
  • Did you solve those challenges? If so, how?


rweidner

This isn't my first post. There are still a few posts around.

I wrote a GTK+ PellesC post back in the day. 
I wrote a MySQL + PellesC post too. 
I was certain I wrote a SDL + PellesC post at some point in the past. But I can't seem to find that one now.

I don't mean to sound like a reporter. Just trying to start a conversation. (aka General Discussion)

rweidner

The reason I use the command line and pomake is because I also use a separate IDE from PellesC. I use PellesC IDE too. But sometimes I prefer something else.

No, I'm not a recruiter. In this context I'm just a dev that likes C and PellesC.

When I search my name, I see that none of my posts show up. What does show up are a few conversations about my posts. Other users seemed to get some value from at least a few of them. Maybe I'll make a few new ones to rebuild my street cred? My project today is PellesC + Raylib. I built a template for that type of project. I'll share that.

TimoVJL

May the source be with you

John Z

I see.  No offense meant, can't be too careful these days.

Removing my prior post.

Regards,
John Z

I don't use pomake but I'm finishing up an IDE Add-In that when called creates one batch file that does the entire build process...just for fun - -

cheers,
 

rweidner

It's all good. No offense taken. Sometimes I use a couple of tiny .bat files for building. These are 2 of them.

build_debug.bat
===============
@echo off
call "%~dp0env_pelles32.bat"
cd /d "%~dp0"
"C:\Program Files\PellesC\Bin\pomake.exe" /F "RaylibWin32.ppj" POC_PROJECT_MODE=Debug

env_pelles32.bat
================
@echo off
REM Sets PellesC environment for x86 builds.
call "C:\Program Files\PellesC\Bin\povars32.bat"

John Z

#6
Useful to be sure.  Attached it an example output .bat file from the BBBBuilder.DLL.  It built a bat file that builds itself (builds the dll that is).  It does not use pomake but uses pocc, poasm, porc, and polink.  It does not use the .prj file either.  One other possible use is to use the resulting  .bat file as a template to build using another compiler package.

Once the .bat is built the supporting file .lst files can be edited for example to add a new source file, then run the bat for a new executable.

Current limitations (working to resolve)
1) a file in the source list marked 'exclude' can't be determined as excluded (feature request submitted)
2) file names should preferably be ASCII, but ANSI might be ok too (cmd limitation)
3) sub directories with source files are not handled.  All sources must be in one directory.  This is probably the biggest issue to solve.  (fixed subdirs under the main project dir are automatically handled)

Also working on outputting a Powershell script to do the build. It is working up to polink. The polink use requires an @ preface which unfortunately is a Powershell special character . . . :(

John Z


rweidner

It took me a long minute to understand what you're building. You're building a replacement process for managing projects and project configuration. You're doing so with the intention of making the whole process less manual, scriptable, and easier to control. If I understand what you're doing, brilliant.