Skip to content

Commit 2065c9d

Browse files
committed
Add GNUmakefile to copy the man pages, and man pages for pc2xc, pcpg
1 parent d6ef32a commit 2065c9d

File tree

3 files changed

+168
-4
lines changed

3 files changed

+168
-4
lines changed

Documentation/GNUmakefile

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,29 @@ include $(GNUSTEP_MAKEFILES)/common.make
2727

2828
include ../Version
2929

30+
# Manual pages to install
31+
MAN1_PAGES = \
32+
buildtool.1 \
33+
pcpg.1 \
34+
pc2xc.1
35+
36+
GNUSTEP_SYSTEM_DOC_MAN=`gnustep-config --variable=GNUSTEP_SYSTEM_DOC_MAN`
37+
MAN1DIR = $(GNUSTEP_SYSTEM_DOC_MAN)/man1
38+
MKDIR_P ?= mkdir -p
39+
40+
all::
41+
42+
install:: install-man1
43+
44+
uninstall:: uninstall-man1
45+
46+
install-man1:
47+
$(MKDIR_P) $(MAN1DIR)
48+
$(INSTALL_DATA) $(MAN1_PAGES) $(MAN1DIR)
49+
50+
uninstall-man1:
51+
$(RM) -f $(addprefix $(MAN1DIR)/,$(MAN1_PAGES))
52+
3053
# The documents to be generated
3154
DOCUMENT_NAME = XCodeReference
3255

@@ -89,10 +112,6 @@ XCodeReference_AGSDOC_FLAGS = \
89112
-FunctionsTemplate Functions \
90113
-MacrosTemplate Functions
91114

92-
# Manual pages to install
93-
MAN1_PAGES = \
94-
buildtool.1
95-
96115
-include GNUmakefile.preamble
97116

98117
include $(GNUSTEP_MAKEFILES)/aggregate.make

Documentation/pc2xc.1

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
."pc2xc(1) man page
2+
."put together by Gregory Casamento
3+
."Copyright (C) 2025 Free Software Foundation, Inc.
4+
."
5+
."Process this file with
6+
."groff -man -Tascii pc2xc.1
7+
."
8+
.TH PC2XC 1 "December 2025" GNUstep "GNUstep System Manual"
9+
.SH NAME
10+
pc2xc \- convert ProjectCenter/NeXT project files to Xcode .xcodeproj bundles
11+
.SH SYNOPSIS
12+
.B pc2xc
13+
.I input_project
14+
.I output_name
15+
.SH DESCRIPTION
16+
The
17+
.B pc2xc
18+
utility converts legacy project formats into an Xcode-compatible bundle. It
19+
accepts either a NeXTstep/Project Builder
20+
.I PB.project
21+
file or a ProjectCenter
22+
.I .pcproj
23+
bundle (containing
24+
.I PC.project
25+
) and produces an
26+
.I output_name.xcodeproj
27+
bundle in the current working directory. The generated bundle contains a
28+
.I project.pbxproj
29+
built using the libs-xcode classes.
30+
.PP
31+
Input detection is based on file extension:
32+
.IP \(bu 2
33+
If
34+
.I input_project
35+
ends with
36+
.I PB.project
37+
it is treated as an old-style NeXT project.
38+
.IP \(bu 2
39+
If
40+
.I input_project
41+
ends with
42+
.I .pcproj
43+
it is treated as a ProjectCenter project and
44+
.I PC.project
45+
is read from inside the bundle.
46+
.PP
47+
If the input type is not recognized or arguments are missing,
48+
.B pc2xc
49+
prints an error and exits with a non-zero status.
50+
.SH ARGUMENTS
51+
.TP
52+
.I input_project
53+
Path to either a
54+
.I PB.project
55+
file or a
56+
.I .pcproj
57+
bundle.
58+
.TP
59+
.I output_name
60+
Base name for the generated Xcode bundle. The tool appends
61+
.I .xcodeproj
62+
and writes the result to the current directory.
63+
.SH EXAMPLES
64+
Convert a ProjectCenter project to Xcode:
65+
.PP
66+
.I pc2xc MyApp.pcproj MyApp
67+
.PP
68+
Convert an old NeXT PB.project file:
69+
.PP
70+
.I pc2xc /tmp/LegacyApp/PB.project LegacyApp
71+
.SH EXIT STATUS
72+
Returns 0 on success. Returns 255 if the input cannot be parsed or the project
73+
cannot be written.
74+
.SH BUGS
75+
Framework build phases are not emitted; only sources and resources are wired
76+
into the target. Input validation is minimal and malformed project files may
77+
cause failed or partial output. Please report issues on the libs-xcode tracker.
78+
.SH HISTORY
79+
.B pc2xc
80+
was written in October 2023 to migrate ProjectCenter and legacy NeXT projects
81+
to Xcode format.
82+
.SH AUTHORS
83+
.B pc2xc
84+
was written by Gregory John Casamento <greg.casamento@gmail.com>.
85+
.P
86+
This man page was written by Gregory Casamento

Documentation/pcpg.1

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
."pcpg(1) man page
2+
."put together by Gregory John Casamento
3+
."Copyright (C) 2025 Free Software Foundation, Inc.
4+
."
5+
."Process this file with
6+
."groff -man -Tascii pcpg.1
7+
."
8+
.TH PCPG 1 "December 2025" GNUstep "GNUstep System Manual"
9+
.SH NAME
10+
pcpg \- parse Xcode project plists and generate placeholder class code
11+
.SH SYNOPSIS
12+
.B pcpg
13+
.I project.pbxproj
14+
.SH DESCRIPTION
15+
The
16+
.B pcpg
17+
utility is a small helper that reads an Xcode project property list (the
18+
.I project.pbxproj
19+
inside a .xcodeproj bundle) and infers the classes referenced by the
20+
.IB objects
21+
section. For every class it sees, it emits paired header and source files in
22+
the current working directory containing ivar declarations and simple getter
23+
and setter methods. This is intended as a metatool to help the libs-xcode
24+
maintainer map unknown or missing classes when parsing Xcode projects.
25+
.PP
26+
.B pcpg
27+
expects a single argument: the path to the plist or project file to inspect.
28+
If no argument is provided it exits without generating output.
29+
.SH OUTPUT
30+
For each class discovered,
31+
.B pcpg
32+
writes
33+
.I ClassName.h
34+
and
35+
.I ClassName.m
36+
files alongside where the tool was invoked. These stubs include imports for
37+
referenced types and generate minimal accessor methods based on the keys and
38+
value types found in the plist.
39+
.SH EXAMPLES
40+
Invoke the tool against a project file inside a bundle:
41+
.PP
42+
.I pcpg MyApp.xcodeproj/project.pbxproj
43+
.PP
44+
Generate stubs from a standalone plist snapshot:
45+
.PP
46+
.I pcpg /tmp/project-dump.plist
47+
.SH BUGS
48+
The tool currently accepts only one positional argument and performs no
49+
validation beyond loading the plist. If the input is malformed or incomplete,
50+
the generated stubs may be unusable. Report issues on the libs-xcode tracker.
51+
.SH HISTORY
52+
.B pcpg
53+
was written in August 2011 as an internal exploration tool and remains
54+
lightweight and experimental.
55+
.SH AUTHORS
56+
.B pcpg
57+
was written by Gregory John Casamento <greg.casamento@gmail.com>.
58+
.P
59+
This man page was written by Gregory John Casamento.

0 commit comments

Comments
 (0)