make[1]: cannot open Makefile.

I want to try to make a port for my program that I recently drew in tcl.

I will optimize the program code, so do not laugh.

I've read the FreeBSD Porter Handbook but haven't figured out exactly what the problem is.

Can anyone tell me what I'm doing wrong?

Makefile:
Code:
# $FreeBSD$

PORTNAME=          sndy
PORTVERSION=    1.0.0
CATEGORIES=       sysutils

MAINTAINER=     Clockwork@FreeBSD.org
COMMENT=        PROGRAM FOR SOUND SWITCHING IN FreeBSD.
WWW=                 https://github.com/Clockwork6400/sndy

LICENSE=             BSD2CLAUSE
LICENSE_FILE=   LICENSE

NO_BUILD=         yes

RUN_DEPENDS=   tcl86>=8.6.12:lang/tcl86 \
                tk86>=8.6.12:x11-toolkits/tk86

PLIST_FILES=    bin/sndy.tcl

USE_GITHUB=     yes
GH_ACCOUNT=     Clockwork6400
GH_TAGNAME=     abfbce63

.include <bsd.port.mk>

On the make stage I am getting the following error:

Code:
===>  License BSD2CLAUSE accepted by the user
===>   sndy-1.0.0 depends on file: /usr/local/sbin/pkg - found
===> Fetching all distfiles required by sndy-1.0.0 for building
===>  Extracting for sndy-1.0.0
=> SHA256 Checksum OK for Clockwork6400-sndy-1.0.0-abfbce63_GH0.tar.gz.
===>  Patching for sndy-1.0.0
===>  Configuring for sndy-1.0.0
===>  Staging for sndy-1.0.0
===>   Generating temporary packing list
make[1]: cannot open Makefile.

make[1]: stopped in /usr/ports/sysutils/sndy/work/sndy-abfbce63
*** Error code 2

Stop.
make: stopped in /usr/ports/sysutils/sndy
 
There is nothing to compile as Tcl is a script language. You may check these options:

RUN_DEPENDS= tclsh8.6:lang/tcl86
USES= tk:8.6
NO_BUILD= yes
NO_ARCH= yes

Note that I'm using Tk as "USE" (and not as run dependency) - your code will only depend on the Tcl- or the Tk-interpreter (there's just one line in your code thet defines the interpreter), and the interpreter is the RUN-dependency.
 
There is nothing to compile as Tcl is a script language. You may check these options:

RUN_DEPENDS= tclsh8.6:lang/tcl86
USES= tk:8.6
NO_BUILD= yes
NO_ARCH= yes

Note that I'm using Tk as "USE" (and not as run dependency) - your code will only depend on the Tcl- or the Tk-interpreter (there's just one line in your code thet defines the interpreter), and the interpreter is the RUN-dependency.
I followed your advice but it didn't help. By adding these dependencies to your makefile. I am having the same error.

Code:
===>  License BSD2CLAUSE accepted by the user
===>   sndy-1.0.0 depends on file: /usr/local/sbin/pkg - found
===> Fetching all distfiles required by sndy-1.0.0 for building
===>  Extracting for sndy-1.0.0
=> SHA256 Checksum OK for Clockwork6400-sndy-1.0.0-abfbce63_GH0.tar.gz.
===>  Patching for sndy-1.0.0
===>   sndy-1.0.0 depends on shared library: libtk86.so - found (/usr/local/lib/libtk86.so)
===>   sndy-1.0.0 depends on shared library: libtcl86.so - found (/usr/local/lib/libtcl86.so)
===>  Configuring for sndy-1.0.0
===>  Staging for sndy-1.0.0
===>   sndy-1.0.0 depends on executable: tclsh8.6 - found
===>   Generating temporary packing list
make[1]: cannot open Makefile.

make[1]: stopped in /usr/ports/sysutils/sndy/work/sndy-abfbce63
*** Error code 2

Stop.
make: stopped in /usr/ports/sysutils/sndy
 
Update:

Code:
PORTNAME=    sndy
PORTVERSION=    1.0.0
CATEGORIES=    sysutils

MAINTAINER=    Clockwork@FreeBSD.org
COMMENT=    PROGRAM FOR SOUND SWITCHING IN FreeBSD
WWW=        https://github.com/Clockwork6400/sndy

LICENSE=    BSD2CLAUSE
LICENSE_FILE=    ${WRKSRC}/LICENSE

RUN_DEPENDS=    tcl86>=8.6.12:lang/tcl86 \
        tk86>=8.6.12:x11-toolkits/tk86

NO_BUILD=     yes

PLIST_FILES=    bin/sndy.tcl

USE_GITHUB=    yes
GH_ACCOUNT=    Clockwork6400
GH_TAGNAME=    abfbce63

do-install:
    ${INSTALL_SCRIPT} ${WRKSRC}/sndy.tcl ${STAGEDIR}${PREFIX}/bin

.include <bsd.port.mk>

Don't forget to do the recommended checks the porters handbook suggests.
 
Update:
Code:
...

Don't forget to do the recommended checks the porters handbook suggests.
Thanks a lot, this works for me.
All checks were successful. However, in the portlint step, I get the following statement.

Code:
FATAL: Makefile: [1]: $FreeBSD$ is deprecated in Git.
Found 1 fatal error and 0 warnings.
 
I have the following question. You don't know how to get the shar of a port?

If I understand correctly, the manual says to go to the directory above and type shar find oneko > oneko.shar

But when I do this I get find inaccessible or not exist and an empty sndy.shar file
 
If I understand correctly, the manual says to go to the directory above and type shar find oneko > oneko.shar
Which "manual"? Porters handbook says the following in https://docs.freebsd.org/en/books/porters-handbook/quick-porting/:
Code:
Example 2. Creating a .shar for a New Port
go to the directory above where the port directory is located, and use tar to create the shar archive:
% cd ..
% tar cf oneko.shar --format shar oneko
If you mean shar(1), it says:
Code:
shar `find . -print`
(You can skip -print primitive as it's default).
 
Back
Top